linux文件的访问控制(acl列表)

0.acl的定义

acl=access control
指定特殊的用户对特殊的文件有特殊的权限
当“.”变成“+”标示开启了acl访问控制列表

注意:当文件/目录有权限列表时,ls -l能看到的权限是假的

linux文件的访问控制(acl列表)_第1张图片

[zyz@localhost ~]$ getfacl /home/zyz/
getfacl: Removing leading '/' from absolute path names
# file: home/zyz/         ##目录/文件的名称
# owner: zyz            ##d/f的拥有者
# group: zyz            ##d/f的所属组
user::rwx              ##拥有者的权限
user:zyz:rwx            ##acl列表中(特殊用户)的权限
group::---             ##特殊组的权限
mask::rwx              ##权限掩码
other::---              ##其他人的权限

1.设定acl列表

[root@localhost mnt]# touch file
[root@localhost mnt]# ll
total 0
-rw-r--r--. 1 root root 0 1月   3 22:05 file
[root@localhost mnt]# setfacl -m u:zyz:rwx file    

-m设定
u 用户
g 组

linux文件的访问控制(acl列表)_第2张图片

2.删除列表中的用户或组

setfacl -x u:zyz file
linux文件的访问控制(acl列表)_第3张图片

3.关闭列表

setfacl -b file
linux文件的访问控制(acl列表)_第4张图片
关闭后“+”变成了“.”

4.acl mask

mask用来标示实际能够赋予用户最大权限
linux文件的访问控制(acl列表)_第5张图片

当你用chmod改变文件普通权限的时候可能会破坏acl mask

5.acl的默认权限

当我们需要普通用户对属于root的某个目录拥有写的权限时,并且目录中新建的子目录对普通用户也生效,就要设定acl默认权限

注意:默认权限只对目录中新建的二级子目录或文件生效,对已经建立的目录和文件无效,对目录本身也无效

linux文件的访问控制(acl列表)_第6张图片

6.特殊权限位

0.suid      ##冒险位

只对二进制可执行文件
文件内记录的程序产生的进程的拥有者为文件的拥有者
和进程的发起人没关系

chmod u+s /usr/bin/touch == chmod 4755 /usr/bin/touch
linux文件的访问控制(acl列表)_第7张图片

1.sgid       ##强制位

a.对文件:只针对二进制可执行文件
任何人运行二进制文件程序时程序产生的进程的所属组都是文件的所有组,和程序发起人组的身份无关

chmod g+s /usr/bin/touch == chmod 2755 /usr/bin/touch
linux文件的访问控制(acl列表)_第8张图片
linux文件的访问控制(acl列表)_第9张图片
b.对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
linux文件的访问控制(acl列表)_第10张图片

设定方式:
chmod g+s file|dir
sgid=2
chmod 2xxx file|dir

2.sticky     ##粘贴位

t权限:只针对于目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除
chmod o+t directory
t=1
chmod 1777 directory
linux文件的访问控制(acl列表)_第11张图片

你可能感兴趣的:(westos)