Linux文件系统ACL高级权限控制

《Linux系统案例精解》第15章

来源: http://book.51cto.com/art/201006/206746.htm  试读章节
 
15.3.3  Linux文件系统ACL高级权限控制
       对于基础的文件权限,系统只能对应用户或单个组设置其操作权限。假设当前企业有以下环境要求:销售部(sale)有一个项目要与技术部(tech)中的一位同事(ken)共享,但又不希望ken拥有对销售部其他文件的任何操作权限。对此,上面提到的文件权限设置都无法完成,解决此问题需要借助文件系统的ACL权限控制。
 
1. 配置文件系统ACL支持
 
    
    
    
    
  1. [root@server1 ~]# mount -o acl /home   
  2. [root@server1 ~]# vim /etc/fstab   
  3. ……   
  4. /dev/VolGroup00/LogVol03        /home         
  5. ext3        defaults,acl        0 0   
  6. ……  
2. 获取文件的ACL权限状态
    
    
    
    
  1. [root@server1 ~]# getfacl sale_file.cfg   
  2. # file: sale_file.cfg   
  3. # owner: tom   
  4. # group: sale   
  5. user::rwx   
  6. group::rwx   
  7. other::---  
3. 修改文件的ACL权限
    
    
    
    
  1. [root@rh442 ~]# setfacl -m u:test:rx sale_file.cfg   
  2. [root@rh442 ~]# getfacl sale_file.cfg   
  3. # file: sale_file.cfg   
  4. # owner: tom   
  5. # group: sale   
  6. user::rwx   
  7. user:ken:r-x   
  8. group::rwx   
  9. mask::r-x   
  10. other::---  
如此设置后,用户ken可以对文件sale_file.cfg进行读操作及执行操作,同时ken不用加入到sale组中,因此ken不能对sale组的其他文件进行操作。
 
4. 文件系统ACL常用操作
命令:setfacl [-R] <-m|-M|-x|-X ACL权限> <文件名>
-m, --modify=acl  设置ACL权限
-M, --modify-file=file  参考file的ACL权限来设置目标的ACL权限
-x, --remove=acl   删除ACL权限
-X, --remove-file=file  参考file的ACL权限来删除目标的ACL权限
-R, --recursive   递归修改本目录及其所有子目录中的所有ACL权限(只对目录有效)
ACL权限格式:[d:]<u|g|o>:<用户名>:<权限>
如:u:test:rx。表示为test用户添加读操作及执行操作权限。
在ACL权限格式中,最前面的"d:"只对目录有效,表示默认情况下此目录下的所有文件都继承当前的ACL权限。

你可能感兴趣的:(linux,文件,acl)