Linux 权限管理之基本权限

一、文件的基本权限

二、ACL权限

文件就三个权限:

所有者权限 组权限 其他权限

有时候不够用(如某个文件权限是770,而想让老王有5的权限,但是老王不是文件所有者和所属组),这时候就需要ACL权限,用来解决用户身份不够的问题。

查看分区ACL权限是否开启

dumpe2fs -h /dev/sda5

注:

dumpe2fs命令时查询指定分区详细文件系统信息的命令
-h  仅显示超级块中信息,而不显示磁盘块的详细信息

文件信息里项:

Default mount options: user_xattr acl

那就说明分区是支持acl的。

查看分区:df

临时开启分区ACL权限:

mount -o remount,acl /

重新挂载根分区,并挂载加入acl权限。

永久开启分区ACL权限:

vi /etc/fstab

UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#启动是否需要检测) 1(#启动是否需要备份)

重新挂载文件系统或重启系统,使修改生效:

mount -o remount /

查看ACL权限:

getfacl 文件名

设定ACL权限的命令:

setfacl 选项 文件名

选项:

-m:设定ACL权限;
-x:删除指定的ACL权限;
-b:删除所有的ACL权限;
-d:设定默认ACL权限;
-k:删除默认ACL权限;
-R:递归设定ACL权限;

为用户设定ACL权限:

setfacl -m u:用户名:权限(rwx) 文件名

为用户组设定ACL权限:

setfacl -m g:组名:权限(rwx) 文件名

最大有效权限mask

(使用命令getfacl 文件名显示的结果中倒数第二排会出现mask这个词)mask是用来指定最大有效权限的。如果我给用户赋予了acl权限,是需要和mask的权限“相与”才能得到用户的真正权限。相与是计算机中的术语,皆真方为真,有假便为假
※最大权限也会影响到组权限
(例:某文件所有者为tonychmod赋予的普通权限为7,而acl赋予tony的权限为5,则acl权限会高于chmod权限)
1.修改mask值的命令 setfacl -m m:rx 文件
2.删除acl权限的命令

setfacl -x u:用户名 文件 (删除指定用户的acl权限)
setfacl -x g:组名 文件 (删除指定用户的acl权限) 
setfacl -b 文件 (删除所有的acl权限)

递归ACL指在给父目录赋予权限的同时,给已经存在于目录下的文件赋予相同的权限

setfacl -m u:用户名:权限  -R 目录名

这里R表示递归。
注意:
a.用递归的方式容易导致文件权限溢出
b.递归acl只能用在目录而不能用于普通文件

默认ACL 权限 : 给父目录下将来新建的文件默认赋予父目录的权限

 setfacl -m d:u:用户名:权限   目录名

这里d 表示defaault

补充:Linux私房菜·基础篇(第三版)-- 文件权限与目录配置

你可能感兴趣的:(linux,权限)