|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|

【|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|】青春须早为,岂能长少年。这篇文章主要讲述|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|相关的知识,希望能为你提供帮助。
一、ACL 权限

### --- ACL 概述:~~~ACL 是用于解决用户对文件身份不足的问题的

|NO.Z.00036|——————————|LinuxBasicEnd|——|Linux&权限管理.V02|

文章图片
二、开启 ACL
### --- 开启 ACL ### --- dumpe2fs 命令是查询指定分区详细文件系统信息的命令 ### --- 选项: ~~~-h 仅显示超级块中信息,而不显示磁盘块组的详细信息。 ~~~...省略部分输出... Default mount options: user_xattr acl ~~~...省略部分输出...[root@localhost ~]# dumpe2fs -h /dev/sda3

~~~如果没有开启,手工开启分区的 ACL 权限: ~~~重新挂载根分区,并挂载加入 acl 权限 ~~~也可以通过修改/etc/fstab 文件,永久开启 ACL 权限: [root@localhost ~]# mount -o remount,acl / ~~~加入 acl [root@localhost ~]# vi /etc/fstab UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4~~~重新挂载文件系统或重启动系统,使修改生效 [root@localhost ~]# mount -o remount /

### --- ACL权限没有开启,手动开启ACL权限[root@server11 ~]# dumpe2fs -h /dev/sda3 Default mount options:user_xattr acl// 默认挂载权限由acl权限

三、ACL 基本命令
### --- ACL 基本命令~~~getfacl文件名查询文件的 ACL 权限 ~~~setfacl 选项文件名设定 ACL 权限 ~~~-m设定 ACL 权限 ~~~-b删除 ACL 权限 ~~~-x:用户删除单个用户的 ACL 权限 ~~~setfacl -mu:用户名:权限文件名 ~~~setfacl -mg:组名:权限文件名 ~~~setfacl -m u:aa:rwx /test给 test 目录赋予 aa 是读写执行的 ACL 权限 ~~~setfacl-m u:cc:rx -R soft/赋予递归 ACL 权限,只能赋予目录 ~~~-R递归 ~~~setfacl -m d:u:aa:rwx -R /testACL 默认权限。注意:默认权限只能赋予目录 ~~~注意:如果给目录赋予 acl 权限,两条命令都要输入

### --- 递归与默认的区别:~~~setfacl-m u:cc:rx -R soft/只对已经存在的文件生效 ~~~setfacl -m d:u:aa:rwx -R /test只对以后新建的文件生效

### --- 设置ACL权限 ~~~添加一个新的用户 [root@server21 ~]# useradd www3 [root@server21 ~]# passwd www3~~~授予ACL权限 [root@server21 ~]# setfacl -m u:www3:5 /www/// u:www3:5用户:用户名:权限数字或者权限数字也可以

~~~查看有个+号[root@server21 ~]# ll -d /www/ drwxrwx---+ 2 www1 www 4096 Feb4 10:29 /www/ [root@server21 ~]# getfacl /www/ ~~~file: www/// 文件名 ~~~owner: www1// 所有者 ~~~group: www// 所属组 user::rwx// 用户权限 user:www3:r-x// 单独的用户拥有5权限 group::rwx// 所属组权限 mask::rwx// 最大权限 other::---// 其他人权限

~~~验证:他可以进入到该目录,但是不可以创建文件// 只能查看文件内容,但是没有操作权限[root@server21 ~]# su - www3 [www3@server21 ~]$ cd /www/ [www3@server21 www]$ touch www touch: cannot touch# `www: Permission denied

### --- 递归创建子文件:针对已经存在子文件生效[root@server21 ~]# touch /www/wwwtest1 [root@server21 ~]# touch /www/wwwtest2 [root@server21 ~]# setfacl -m u:www3:5 -R /www/

~~~查看www下的所有文件都有ACL权限[root@server21 ~]# ll /www/ -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest1 -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest2 [root@server21 ~]# getfacl /www/wwwtest1 getfacl: Removing leading / from absolute path names # file: www/wwwtest1 # owner: root # group: root user::rw- user:www3:r-x group::r-- mask::r-x other::r--

~~~再创建一个文件,是没有ACL权限的[root@server21 ~]# touch /www/wwwtest3 [root@server21 ~]# ll /www/ total 0 -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest1 -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest2 -rw-r--r--1 root root 0 Feb4 10:38 wwwtest3// 是没有ACL权限,递归只能对已经存在的文件生效

~~~对于新建的文件也会有ACL权限[root@server21 ~]# setfacl -m d:u:www3:5 -R /www/// 加入d参数 [root@server21 ~]# getfacl /www/ default:user::rwx default:user:www3:r-x default:group::rwx default:mask::rwx default:other::--- [root@server21 ~]# touch /www/wwwtest4 [root@server21 ~]# ll /www/ total 0 -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest1 -rw-r-xr--+ 1 root root 0 Feb4 10:35 wwwtest2 -rw-r--r--1 root root 0 Feb4 10:38 wwwtest3// 这个文件还是没有ACL权限,刚好卡在这两个权限生效之间,所以不会生效 -rw-rw----+ 1 root root 0 Feb4 10:40 wwwtest4// 新建的文件有ACL权限

### --- ACL权限最大的问题:一旦递归之后,不可避免权限溢出~~~setfacl-m u:cc:rx -R soft/// 只对已经存在的文件生效 ~~~setfacl -m d:u:aa:rwx -R /test// 只对以后新建的文件生效

四、 最大有效权限 mask
### --- 最大有效权限 mask[root@localhost /]# setfacl -m m:rx project/

~~~设定 mask 权限为 r-x。使用“m:权限”格式[root@localhost /]# getfacl project/ ~~~file: project/ ~~~owner: root ~~~group: tgroup user::rwx group::rwx// effective:r-x mask::r-x ~~~mask 权限变为了 r-x other::---

### --- 调整最大权限[root@server21 ~]# getfacl /www/ mask::rwx// 调整最大权限的 [root@server21 ~]# setfacl -m m:6 /www/ [root@server21 ~]# getfacl /www/ user::rwx user:www3:r-x// effective:r--- 只读;建议使用默认的 group::rwx// effective:rw- mask::rw- other::--- default:user::rwx default:user:www3:r-x default:group::rwx default:mask::rwx default:other::--- [root@server21 ~]# setfacl -m m:7 /www/

五、删除 ACL 权限
### --- 删除 ACL 权限 ~~~删除指定用户和用户组的 ACL 权限 [root@localhost /]# setfacl -x u:st /project/ ~~~会删除文件的所有的 ACL 权限 [root@localhost /]# setfacl -b project/

### --- 删除 ACL 权限 ### --- 再添加一个用户授予ACL权限[root@server21 ~]# setfacl -m u:www2:5 /www/ [root@server21 ~]# getfacl /www/ user:www2:r-x user:www3:r-x

### --- 删除某一个用户的ACL权限 [root@server21 ~]# setfacl -x u:www2 /www/ [root@server21 ~]# getfacl /www/ user:www3:r-x// 只能查看到www3用户的ACL权限### --- 删除所有的ACL权限 [root@server21 ~]# setfacl -b /www/ [root@server21 ~]# getfacl /www/

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warmd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor

    推荐阅读