Linux系统中传统的权限设置方法比较简单,仅有3种身份、3种权限而已,通过配合chmod和chown等命令来对文件的权限或所有者进行设置。如果要进行比较复杂的权限设定,例如某个目录要开放给某个特定的使用者使用时,这些传统的方法就无法满足要求了。

例如对于/home/project目录,该目录的所有者是student用户,所属组是users组,预设权限是770。现在有个名为natasha的用户,属于natasha组,希望能够对/home/project目录具有读写执行权限;还有一个名为instructor的用户,属于instructor组,希望能够对/home/project目录具有读取和执行权限。

很明显,利用chmod或chown命令是无法完成这个要求的。因而,Linux系统提供了ACL(Access Control List)专门来完成这种细部权限设置。

1. 设置ACL

设置ACL使用的是setfacl命令,该命令格式如下:

setfacl [选项设定值 文件名

常用选项:

  • -m,设定一个ACL规则。

  • -x,取消一个ACL规则。

  • -b,取消所有的ACL规则。

例:设置natasha对/home/project目录具有rwx权限。

[root@localhost ~]# setfacl -m u:natasha:rwx /home/project/

[root@localhost ~]# ll -d /home/project/

drwxrwxrwx+ 2 student users 4096 12月 2 16:43 /home/project/

设置完ACL后,查看文件详细信息时在权限部分会多出一个“+”的标识,代表文件启用了ACL权限。

下面再设置instructor用户对/home/project目录具有r-x权限。

[root@localhost ~]# setfacl -m u:instructor:r-x /home/project/

2. 管理ACL

通过getfacl命令可以来查看ACL权限。

[root@localhost ~]# getfacl /home/project/

getfacl: Removing leading '/' from absolute path names

# file: home/project/

# owner: student

# group: users

user::rwx

user:instructor:r-x

user:natasha:rwx

group::rwx

mask::rwx

other::rwx

通过“setfacl –m”命令可以来修改ACL。

例:将instructor用户的权限修改为rwx。

[root@localhost ~]# setfacl -m u:instructor:rwx /home/project/

通过“setfacl -x”命令可以从ACL中去除某个用户。

例:将instructor用户从ACL中去除。

[root@localhost ~]# setfacl -x u:instructor /home/project/

3. 启动ACL支持

ACL可以针对用户设置,也可以针对用户组设置。要使用ACL必须要有文件系统的支持,Linux中标准的EXT2/EXT3/EXT4文件系统都支持ACL功能。但是要注意,RHEL6中默认的文件系统支持ACL,如果是新挂载的分区,则不支持ACL应用,可以在挂载文件系统时使用“-o acl”选项启动ACL支持。

例:将/dev/sdb1分区挂载到/home目录,并启动ACL支持。文件系统挂载之后,通过mount命令确认ACL已启动。

[root@localhost ~]# mount -o acl /dev/sdb1 /home

[root@localhost ~]# mount | grep home

/dev/sdb1 on /home type ext4 (rw,acl)

如果想要在系统启动时自动应用ACL功能,则需要修改/etc/fstab文件,添加以下行:

[root@localhost ~]# vim /etc/fstab

/dev/sdb1 /home ext4 defaults,acl 0 0

4. 配置ACL时应注意的问题

ACL用于提供额外权限,主要用来对权限进行微调。在系统中设置权限时,主要还是应该依靠chmod、chown这些传统的方法,而不能以ACL为主,否则维护起来会比较吃力。

因而当在生产环境中设置权限时,建议先用chmod、chown设置总体权限,然后根据需要再用ACL设置细部权限。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1577458

网络安全系列之三十九 在Linux中配置访问控制列表ACL相关推荐

  1. 网络安全系列之四十六 在IIS6中配置目录安全性

    Web站点默认是允许匿名访问的,某些特殊网站(或者虚拟目录)如果要求用户提供账号和密码才能访问,或者限定某些IP地址能(或不能)访问,那可以通过在Web站点属性的"目录安全性"选项 ...

  2. 《神探tcpdump第五招》-linux命令五分钟系列之三十九

    == [系列文章] <神探tcpdump第一招>-linux命令五分钟系列之三十五 <神探tcpdump第二招>-linux命令五分钟系列之三十六 <神探tcpdump第 ...

  3. Java云同桌学习系列(十九)——Linux系统

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  4. 网络安全系列之五十二 组策略中的软件限制策略

    在组策略编辑器中展开"计算机配置/Windows设置/安全设置/软件限制策略",通过设置软件限制策略,可以限制用户在计算机上使用某些未经许可的软件,从而提高安全性. 下面以禁用记事 ...

  5. 网络安全系列之三十五 缓冲区溢出

    缓冲区溢出的大名可谓如雷贯耳,我们不必去探究缓冲区溢出的原理,只需知道他能做什么就可以了.如果能够成功地对远程计算机进行缓冲区溢出,那么就可以获得远程计算机的Shell,也就可以直接以管理员的身份在远 ...

  6. 网络安全系列-二十九: 读《透视APT 赛博空间的高级威胁》笔记

    最近读了奇安信威胁情报中心 于2019年出版 的<透视APT 赛博空间的高级威胁>,针对APT终于有了一个清晰的理解. APT攻击是网络空间存在的威胁隐患,是全球各国面临的重要风险. AP ...

  7. ReactNative系列之三十九ReactNative支持点九图

    请先参考下文章: https://www.jianshu.com/p/1f3ab1caee97   React Native显示点9图片 https://github.com/rusfearuth/r ...

  8. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...

    SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法) 一.概述 在<SpringCloud微服务实战系列(十七)Ouath2在真实场景中的应用之资 ...

  9. 【SQL开发实战技巧】系列(十九):数据仓库中时间类型操作(进阶)如何一个SQL打印当月或一年的日历?如何确定某月内第一个和最后—个周内某天的日期?

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

最新文章

  1. 30分钟入门Java8之默认方法和静态接口方法
  2. Android之assets资源
  3. canvas的简单实例集合
  4. 【C++编程题2】字符串插入空格
  5. IIS 添加mime 支持 apk,exe,.woff,IIS MIME设置 ,Android apk下载的MIME 设置 苹果ISO .ipa下载mime 设置...
  6. 数据库索引如何工作? [关闭]
  7. 白板推导系列Pytorch-隐马尔可夫模型-学习问题
  8. PropertyChangeSupport 监听器模式的应用
  9. CIDetector 边缘识别
  10. 非科班生的Android秋招求职经历
  11. 区块链学习6:Mist合约部署与删除
  12. 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档)
  13. 支付宝微信刷脸支付开始在全国推广
  14. SAP_BTE增强有两种,类似于校验和替代
  15. 每月两个小小项目——CSS3简易照片墙
  16. 「杂谈」最有可能成为第五个一线城市,苏州 or 杭州?
  17. c语言错误 243什么意思,c语言编译后[Error] stray apos;\243apos; in program
  18. android wifi p2p框架,7.2.1 P2P架构
  19. 团队负责人(team leader)职责
  20. dra7xx cpu frequency change

热门文章

  1. Web 安全与 Rational AppScan 入门
  2. springboot整合视图层之freemarker
  3. 【连载】Django入门到实战(一)
  4. 0x800f0845 更新1803报错
  5. 基于vue的video播放组件
  6. dubbo简易实现_分别利用自定义的注册中心和zookeeper
  7. Swift 2.3- 3.0
  8. 事务隔离级别神话与误解
  9. 使用 Raspberry Pi 远程桌面
  10. 求1+2+…+n变态问题的两个很棒的解法