[QNX]QNX_Linux具体权限规划之ACL(Access Control List)

锋影

email:[email protected]

如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意

 

ACL机制涉及两条命令:setfacl 、getfacl

 

ACL来源

owner,group,othre搭配的三种权限rwx中,没办法针对单一用户或者某个组。

 

ACL可以针对单一用户、单一文件或者目录进行rwx权限设置

用mount命令查看根目录挂载的分区好,再用dumpe2fs命令查看该分区的superblock内容确定是否支持acl,一般都支持的了。

 


 
  1. jammgit@jammg:~$ sudo dumpe2fs -h /dev/sda12 | grep acl

  2. dumpe2fs 1.42.12 (29-Aug-2014)

  3. Default mount options: user_xattr acl

 

也可以直接修改/etc/fstab文件,加上acl。


如果系统没加上acl支持,可以:

 

#mount -o remount,acl /


命令用法

 

 


 
  1. setfacl [-bkRd] [{-m|-x} acl参数] 目标文件名

  2. -m 设置后续的acl参数给指定目标文件

  3. -x  删除,和m选项相反

  4. -b  删除所有acl参数

  5. -k  删除默认的acl参数

  6. -R  递归设置(针对子目录)

  7. -d  设置默认acl参数,只对目录有效

 

 

setfacl 、getfacl格式

 


 
  1. setfacl u:[用户列表]:[rwx] 目标 //针对用户。用户列表为空时是指文件持有者

  2. setfacl g:[用户组列表]:[rwx] 目标 // 针对用户组

  3. setfacl -m m:[rwx] 目标 // 设置文件mask

  4. getfacl 目标

 

例子

 

 


 
  1. jammgit@jammg:/tmp$ setfacl -m u:jammgit_1:rwx testacl

  2. jammgit@jammg:/tmp$ ls -la | grep testacl

  3. -rw-rwxr--+ 1 jammgit jammgit 0 3月 30 18:40 testacl

 


 
  1. jammgit@jammg:/tmp$ getfacl testacl

  2. # file: testacl

  3. # owner: jammgit

  4. # group: jammgit

  5. user::rw- // 用户权限

  6. user:jammgit_1:rwx // acl机制针对jammgit_1设置的权限,优先级比ls查看到的大。

  7. group::rw- // 用户组权限

  8. mask::rwx // 屏蔽

  9. other::r-- //其它权限


上面设置用户或用户组的权限必须存在雨mask权限范围才会生效,即有效权限(effective permission)。

 

例如,如果设置mask为r:

 


 
  1. jammgit@jammg:/tmp$ setfacl -m m:r testacl

  2. jammgit@jammg:/tmp$ getfacl testacl

  3. # file: testacl

  4. # owner: jammgit

  5. # group: jammgit

  6. user::rw-

  7. user:jammgit_1:rwx        #effective:r--

  8. group::rw-            #effective:r--

  9. mask::r--

  10. other::r--

 

此时,虽然设置了jammgit_1为rwx,但实际是只有r;另外,用户组也收到影响。
 

版权声明:本文为博主原创文章,未经博主不允许随意转载。 https://blog.csdn.net/Jammg/article/details/51017994

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章