设为首页 收藏本站
查看: 670|回复: 6

[经验分享] Linux下的高级文件权限ACL

[复制链接]

尚未签到

发表于 2013-3-25 08:52:54 | 显示全部楼层 |阅读模式
ACL(Access Control List)即访问控制列表。主要是针对单一用户,单一文件或目录进行rwx权限的细部设定。可以针对用户(User)、群组(Group)、默认属性掩码(mask)进行设置。
ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能。

*拥有ACL功能:
  • [Shell] 纯文本查看 复制代码
    [iyunv@rhel6 ~]# mount -o acl /dev/iscsi/sharedisk /data/  
    [iyunv@rhel6 ~]# mount | grep sharedisk  
    /dev/mapper/iscsi-sharedisk on /data type ext4 (rw,acl)  
      
    注:如果是用tune2fs命令启用分区的ACL功能,用mount命令是看不到的.  
    [iyunv@rhel6 ~]# tune2fs -o acl /dev/iscsi/sharedisk  
    [iyunv@rhel6 ~]# tune2fs -l /dev/iscsi/sharedisk | grep -i "default mount option"  
    Default mount options:    acl  
    [iyunv@rhel6 ~]# umount /data/ 
    [iyunv@rhel6 ~]# mount /dev/iscsi/sharedisk /data/ 
    [iyunv@rhel6 ~]# mount | grep sharedisk  
    /dev/mapper/iscsi-sharedisk on /data type ext4 (rw)  
    ACL相关设置命令
    getfacl	:获取文件或目录的ACL设置信息.
    setfac	:设置文件或目录的ACL设置信息.
    chacl	:同setfacl,也是用来设定ACL设置信息(不常用).
    [iyunv@rhel6 data]# setfacl --help 
    setfacl 2.2.49 -- set file access control lists 
    Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... 
      -m, --modify=acl        更改文件或目录的ACL规则 
      -M, --modify-file=file  从一个文件读入ACL设置信息并以此为模版修改当前文件或目录的ACL规则 
      -x, --remove=acl        删除文件或目录指定的ACL规则 
      -X, --remove-file=file  从一个文件读入ACL设置信息并以此为模版删除当前文件或目录的ACL规则 
      -b, --remove-all        删除文件或目录所有的ACL规则 
      -k, --remove-default    删除文件或目录默认的ACL规则 
          --set=acl           设置当前文件的ACL规则 
          --set-file=file     从文件读入ACL规则来设置当前文件或目录的ACL规则 
          --mask              重新计算有效权限,即使ACL mask被明确指定 
      -n, --no-mask           不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定 
      -d, --default           设置目录默认的ACL规则(只对目录有效) 
      -R, --recursive         递归处理 
      -L, --logical           logical walk, follow symbolic links 
      -P, --physical          physical walk, do not follow symbolic links 
          --restore=file      restore ACLs (inverse of `getfacl -R') 
          --test              test mode (ACLs are not modified) 
    注:设置了ACL的目录或文件,在属性的最后一位会出现一个“+”号,查看文件或目录所属群组的准确权限应该使用getfacl命令。
     
    目录: 
    [iyunv@rhel6 data]# mkdir acl_dir 
    [iyunv@rhel6 data]# ll -d acl_dir 
    drwxr-xr-x. 2 root root 1024 Mar 24 10:29 acl_dir/ 
    [iyunv@rhel6 data]# getfacl acl_dir/ 
    # file: acl_dir  
    # owner: root           "基本规则" 
    # group: root    
    user::rwx        
    group::r-x              "缺省规则" 
    other::r-x            
     
    [iyunv@rhel6 data]# su - user1 
    [user1@rhel6 ~]$ touch /data/acl_dir/acl_user1 
    touch: cannot touch `/data/acl_dir/acl_user1': Permission denied     //user1用户对acl_dir目录不具有写权限,无法创建文件
    [user1@rhel6 ~]$ exit 
    [iyunv@rhel6 data]# setfacl -m u:user1:rwx acl_dir/                   //赋予user1用户对acl_dir目录具有读写执行的权限
    [iyunv@rhel6 data]# getfacl --all-effective acl_dir/ 
    # file: acl_dir  
    # owner: root 
    # group: root    
    user::rwx 
    user:user1:rwx          #effective:rwx 
    group::r-x             #effective:r-x 
    mask::rwx    
    other::r-x 
    [iyunv@rhel6 data]# su - user1 
    [user1@rhel6 ~]$ touch /data/acl_dir/acl_user1                       //可成功创建文件
    [user1@rhel6 ~]$ ll -d /data/acl_dir/                                //acl_dir目录属性后面多了一个"+" 
    drwxr-xr-x+ 2 root root 1024 Mar 24 10:33 /data/acl_dir/
    注:对于目录而言,必须给予可执行的权限,否则无法cd到对应的目录中
     
    文件: 
    [iyunv@rhel6 data]# touch acl_file 
    [iyunv@rhel6 data]# getfacl acl_file  
    # file: acl_file 
    # owner: root 
    # group: root 
    user::rw- 
    group::r-- 
    other::r-- 
    [iyunv@rhel6 data]# su - user1 
    [user1@rhel6 ~]$ echo "access test" > /data/acl_file
    -bash: /data/acl_file: Permission denied                            //user1用户对acl_file文件不具有写权限
     
    [iyunv@rhel6 data]# setfacl -m u:user1:rw acl_file                   //赋予user1用户对acl_file文件的读写权限
    [iyunv@rhel6 data]#  getfacl --all-effective acl_file  
    # file: acl_file 
    # owner: root 
    # group: root 
    user::rw- 
    user:user1:rw-          #effective:rw- 
    group::r--             #effective:r-- 
    mask::rw- 
    other::r-- 
     
    [iyunv@rhel6 data]# su - user1 
    [user1@rhel6 ~]$ echo "access test" > /data/acl_file                //可成功写入acl_file文件
    [user1@rhel6 data]$ cat acl_file  
    access test 
     
    [user1@rhel6 ~]$ ll /data/ 
    total 16 
    drwxrwxr-x+ 2 root root  1024 Mar 24 10:33 acl_dir 
    -rw-rw-r--+ 1 root root    12 Mar 24 10:39 acl_file 
    drwx------. 2 root root 12288 Mar 24 10:24 lost+found 
     
    mask: 
    [iyunv@rhel6 data]# setfacl -m m:r acl_dir/ 
    [iyunv@rhel6 data]# getfacl acl_dir/  
    # file: acl_dir 
    # owner: root 
    # group: root 
    user::rwx 
    user:user1:rwx                      #effective:r-- 
    group::r-x 
    mask::r-- 
    other::r-x 
     
    [iyunv@rhel6 data]# su - user1 
    [user1@rhel6 data]$ cd acl_dir/ 
    -bash: cd: acl_dir/: Permission denied 
     
    由于user1用户在这个目录上没有x权限,所以连这个目录都不能进入,尽管我们已经赋予user1用户rwx的ACL设置信息。 
    最终权限由mask控制,权限必须在mask内,否则相对mask多出来的权限也是无效的。 
     
    [iyunv@rhel6 data]# mkdir dir 
    [iyunv@rhel6 data]# setfacl -d -m u:user1:rwx dir/               //让dir/目录下的所有文件和目录继承dir/目录的ACL设置信息 
    [iyunv@rhel6 data]# getfacl dir/ 
    # file: dir/ 
    # owner: root 
    # group: root 
    user::rwx 
    group::r-x 
    other::r-x 
    default:user::rwx 
    default:user:user1:rwx 
    default:group::r-x 
    default:mask::rwx 
    default:other::r-x 
     
    [iyunv@rhel6 data]# touch dir/test 
    [iyunv@rhel6 data]# getfacl dir/test                            //dir目录中创建的文件user1用户同样具有rwx权限
    # file: dir/test 
    # owner: root 
    # group: root 
    user::rw- 
    user:user1:rwx                  #effective:rw- 
    group::r-x                      #effective:r-- 
    mask::rw- 
    other::r-- 
     
    [iyunv@rhel6 data]# setfacl -x u:user1 acl_file                //移除acl_file中的user1的ACL设置 
    [iyunv@rhel6 data]# getfacl acl_file  
    # file: acl_file 
    # owner: root 
    # group: root 
    user::rw- 
    group::r-- 
    mask::r-- 
    other::r-- 
    [iyunv@rhel6 data]# ll acl_file  
    -rw-r--r--+ 1 root root 12 Mar 24 10:39 acl_file              //文件属性的"+"依然存在
     
     
    [iyunv@rhel6 data]# setfacl -b acl_file                        //移除acl_file中所有的ACL设置 
    [iyunv@rhel6 data]# getfacl acl_file  
    # file: acl_file 
    # owner: root 
    # group: root 
    user::rw- 
    group::r-- 
    other::r-- 
    [iyunv@rhel6 data]# ll acl_file          
    -rw-r--r--. 1 root root 12 Mar 24 10:39 acl_file             //文件属性的"+"已还原成"."
     
    [iyunv@rhel6 data]# getfacl dir/ > acl.bak                     //导出dir目录的ACL设置信息 
    [iyunv@rhel6 data]# setfacl --set-file=acl.bak acl_dir/        //将ACL设置信息导入acl_dir目录 
    [iyunv@rhel6 data]# getfacl acl_dir/ 
    # file: acl_dir/ 
    # owner: root 
    # group: root 
    user::rwx 
    group::r-x 
    other::r-x 
    default:user::rwx 
    default:user:user1:rwx 
    default:group::r-x 
    default:mask::rwx 
    default:other::r-x 



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-4315-1-1.html 上篇帖子: CentOS下安装memcached 下篇帖子: linux添加硬盘并分区格式化 Linux
发表于 2013-3-25 09:08:17 | 显示全部楼层
鸳鸳相抱何时了,鸯在一边看热闹。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-22 09:20:06 | 显示全部楼层

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-5 12:54:53 | 显示全部楼层
看帖回帖是美德!:lol

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-19 22:45:08 | 显示全部楼层
不在放荡中变坏,就在沉默中变态!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-27 07:20:26 | 显示全部楼层
爱护环境,人人有病。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-8-6 08:52:29 | 显示全部楼层
爱——不是想出来的,爱——是做出来的!!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表