linux中acl管理详解

目录:

1、ACL简介;
2、CentOS7 与之前版本的区别;
3、管理acl工具的介绍
4、注意事项

1、简介:

    访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体[1]。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对对象的权限。
    主要功能:为了更好的管理用户权限,可以自由的设置用户的访问文件的权限,实行有效的管理。对某些组或者用户有特殊权限的设置。

2、CentOS7 与之前版本的区别

    CentOS7版本,进行对磁盘的分区,自动创建acl功能。而CentOS6之前的版本只有安装系统创建的分区中自动创建acl功能。安装系统成功后,创建分区时不自动创建acl功能;如果需要可以手动创建:
    首先要挂载分区才可以添加acl功能;
    tune2fs –o acl /dev/sdb1
    mount –o acl /dev/sdb1  /mnt/test   

3、管理acl工具的介绍

(1)setfacl set file access control lists

usage:
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
setfacl –restore=file
OPTIONS:

-m:修改用户、组、mask acl权限;
-b:清空所有acl权限;
-x:删除acl权限;但是删除的不干净;
-k:清除默认acl权限;
-M:调用文件修改acl权限;
-R:递归修改目录下acl权限;

示例

getfacl file|directory 查看文件acl功能;
setfacl -m u:USERNAME:MODE file|directory 修改文件或目录用户的acl权限;
setfacl -m g:GROUPNAME:MODE file|directory 修改文件或目录组的acl权限;
setfacl -Rm g:GROUPNAME:MODE directory 递归修改目录下acl权限;
setfacl -M file.acl file|directory 调用文件修改文件后目录的acl权限;
setfacl -x u:USERNAME: FILE|directory 删除用户权限;
setfacl -X file.acl(文件中写有删除的权限内容) directory 只对目录起作用;
setfacl -b file 清除文件的acl权限;
setfacl -k file 删除默认的acl权限;
setfacl -Rm u:mage:rwx dir/
x:对目录文件下的文件都生效;
setfacl -Rm u:mage:rwX dir/
X:只对目录起作用,对目录下的文件不生效;
getfacl file1 | setfacl –set-file=- file2 复制file1的acl权限给file2;

(2)设置mask权限:

mask权限只对自定用户、自定义组、所属组有效,对所有者和其他用户无效;
mask相当于一个高压线,上述有效的定义中不能超过mask定义的权限。

setfacl -m mask::rx file 设置mask权限;

–set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以。

setfacl –set u::rw,u:wang:rw,g::r,o::- file1

(3)备份和恢复acl

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息 .

备份:

getfacl -R DIRECTORY >/PATH/TO/SOME_FILE
备份是会自动删除路径前/,方便以后路径改变;

恢复:

setfacl –restore /PATH/TO/SOME_FILE
setfacl -R –set-file=acl.txt /PATH/TO/SOURCE


4、注意事项

    (1)设置了acl功能在权限或.会变成+。
    (2)设置了acl功能,所属组的权限不能原所属组的权限,而是自定义组的权限。
    (3)如果对组修改权限,组中的用户对此文件都有组的权限;用户既在组中又单独对用户修改权限,这个用户只能匹配用户定义的权限。
    (4)一个用户属于多个组,用户得到的权限累加。
    (5)ACL生效顺序:所有者-->自定义用户-->自定义组(如果有多个组,权限累加)-->其他人。

5、

[root@localhost app]#setfacl -m d:u:wang:rw testdir/dir/ 设置此目录的默认acl
cp /etc/passwd f2
[root@localhost dir]# ll  #此时查看文件时,新创建的文件又acl功能;旧文件没有acl功能;
total 8
-rw-r--r--. 1 root root   23 Jul 29 02:43 f1
-rw-r--r--+ 1 root root 2801 Jul 29 02:48 f2

备份和恢复示例:

[root@localhost app]# setfacl -m d:g:laowang:rw testdir/dir/ #设置acl权限
[root@localhost app]# setfacl -m d:u:wang:r testdir/dir/
[root@localhost app]# setfacl -m d:u:tom:r testdir/dir/
[root@localhost app]# getfacl testdir/dir/ #查看此目录的权限
[root@localhost app]# getfacl -R testdir/dir/ > /root/acl.log #备份
[root@localhost app]# setfacl –restore /root/acl.log # 还原

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值