Linux特殊权限及ACL(2)

        Linux传统的权限访问方式3种,user、group、others,在实际应用中,会遇到不够用的情况。假设有一个小组,一个放小组成员资料文件的目录,小组中每个成员有访问和修改的权限,组长有对其最高权限,其他组任何人不能访问这个目录文件。权限分配就应该是:组长作为root用户,权限rwx;该组所有成员都入tgroup,使tgroup作为目录的属组,权限rwx;其他人权限为0.

        某一天小组调来一个新成员np,他作为成员拥有rx权限;但是他的能力究竟怎样还不知,所以不能正式进入小组,不能赋予w权限,np拥有权限也就是r-x,但是身份是root还是加入tgroup,或者other,显然都不匹配,又不能去改变原有身份的权限,让原来设置权限目的改变。

        以上提到的三种身份不够用了,不能对某个单独用户设定访问权限,这个时候ACL就该发挥作用了。

        ACL(Access Control List)访问控制列表,它在Linux中的作用就是实现对单一用户设定访问文件的权限。在传统三种身份访问权限无法解决实际问题时,直接对上面np用户设定访问文件的r-x权限。

开启ACL权限

        1.查看当前所安装的操作系统版本是否支持ACL控制

# grep -i acl /boot/config*
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CIFS_ACL=y

        目前基本所有文件系统都支持ACL权限功能,特别是CentOS 7默认创建分区并在写入文件系统时附加ACL属性。

        2.检查所需程序包

        处理ACL前,确保所需程序包已经安装。

# rpm -qa | grep acl
acl-2.2.51-15.el7.x86_64
nfs4-acl-tools-0.3.3-21.el7.x86_64
python2-ipaclient-4.6.8-5.el7.centos.11.noarch
libacl-2.2.51-15.el7.x86_64

        正常显示版本号即安装好,如果没有,在确保网络通畅的情况下,执行:

yum install nfs-acl-tools ad lib-acl -y

  ACL权限设置   

        主要是setfacl和 getfacl两个命令,setfacl用于给指定文件或目录设定ACL权限,getfacl用于查看是否配置成功。

        getfacl:

        getfacl  filename

# getfacl booz
# file: booz
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x

        一般getfacl和setfacl搭配使用 。

        setfacl:

        setfacl  option  filename

option功能
-m设定ACL权限。若给用户设定ACL权限,参数使用“u:用户名:权限”的格式,如setfacl -m u:np:rx /project 表示设定np用户对project目录有rx权限;组ACL权限“setfacl -m g:tgroup:rx  /prouject”
-x删除指定用户(参数使用u:)或群组(参数使用g:)的ACL权限,如“setfacl -x u:np  /project”表示删除np用户对project的ACL权限
-b删除所有ACL权限,如“setfacl -b /project”表示删除所有跟project有关的ACL权限
-d设定默认ACL权限,格式“setfacl -m d:u:username:权限 filename”"setfacl -m d:g:groupname:权限  filename",只对目录有效,指目录中新建文件拥有此默认权限
-R递归设定ACL权限,指设定的ACL权限会对目录下的所有子文件生效,格式“setfacl -m u:username:权限 -R  filename”(群组使用g:groupname:权限)如“setfacl -m u:np:rx -R /project”表示np用户对已存在于project目录中的子文件和子目录有rx权限
-k删除默认ACL权限

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值