初学Linux之文件特殊权限与acl列表

1 文件权限之特殊权限

1.1 sticky 粘制位,代表数字:1 代表字符 t
该位的作用为使目录当中的文件只能被文件所有者删除(除去root,root拥有任意操作权限)
chmod 1xxx dir 特殊权限位数字在普通权限前面一位
chmod o+t dir
示例步骤:1.打开监控信息watch -n1 “ls -ld /westos;ls -l /westos”
2 切换不同用户tom,leo,分别建立文件,检查tom是否能够删除leo建立的文件(可以删除)
3.改变目录权限位1777,再次分别切换用户,检查tom是否可以删除leo的文件(不可以删除,t权限位阻止了操作)

初学Linux之文件特殊权限与acl列表

1.2 sgid 强制位 代表数字:2 代表字符 s
1.2.1 针对目录:权限改变之后目录中建立的文件自动归属于目录组,而不属于文件的建立者
chmod g+s /westos 当在westos下建立文件,文件的所有组为westos
chmod 2xxx dir
例如 tom在/westos目录下建立文件,文件的所有组为tom,权限改变之后,文件的所有组为/westos目录的所有组
示例步骤:
1.两个shell,一个监空目录本身以及目录下的文件,一个用来改变权限
2. 切换成tom,建立文件file1,文件所有组为tom,然后切换成root更改权限chmod g+s /westos
3. 切换成tom,建立文件file2,文件所有组变为root
初学Linux之文件特殊权限与acl列表

1.2.2 针对文件: 权限改变之前:对于二进制可执行文件,所产生的进程的所有组为执行者的组,和文件所在组无关。
权限改变之后:任何人运行二进制可执行文件产生的进程的所有组都是文件的所有组
chmod g+s /bin/watch 使执行watch命令的进程的所有组为文件所在的组
chmod 2xxx /bin/watch
示例步骤:1.打开两个shell,一个切换到普通用户,执行watch进程,另一个shell改变文件的权限chmod g+s /bin/ watch ,并且使用ps ax -0 user,group,comm | grep watch 查看watch命令进程
2.在没有更改权限以前,tom发起的进程所有组为tom
权限改变以后,进程所有者变为文件的所有组root
初学Linux之文件特殊权限与acl列表
初学Linux之文件特殊权限与acl列表
1.3 suid 冒险位代表数字:4 代表字符 s
只针对二进制可执行文件,执行该文件产生的进程的所有人为文件所有人
chmod u+s /bin/watch ,任何人执行watch都会变成watch的所有者root.相当于身份的提升
chmod 4xxx /bin/watch
步骤:1.打开两个shell,一个切换到普通用户tom,执行watch进程,另一个shell,并且使用ps -a -o user,group,comm 查看进程,发现进程所有者为tom.之后改变文件的权限chmod u+s /bin/ watch ,再次执行watch命令,查看进程后发现进程的所有者变为root
2.在没有更改权限以前,tom发起的进程所有者为tom
权限改变以后,任何用户执行watch的所有者都会变成root
初学Linux之文件特殊权限与acl列表
初学Linux之文件特殊权限与acl列表

2权限列表acl:对于特殊的用户有特殊的权限

2.1 查看 getfacl /mnt/file
#file:file 文件名称
#owner:file 文件所有者
#group :root 文件所有组
user::rw- 文件所有者的权力
user:kiosk:rwx 指定用户的权力
group::r-- 文件所有组的权力
mask::rwx 表示特殊用户最大的权限,与自己设定的特殊用户的权限相同
other::r-- 其他人的权力
2.2 设定 setfacl -m u:student:0 /mnt/file 添加student为特殊用户
setfacl -m -g:ly:rw /mnt/file 添加特殊用户组ly
setfacl -x -g:ly:rw /mnt/file 删除特殊用户组
setfacl -b file 删除权限列表
setfacl -m u:student:0 /mnt 只针对/mnt这个目录添加,不针对目录下的文件
setfacl -R -m u:student:0 /mnt/file 针对目录及目录以下的所有文件
初学Linux之文件特殊权限与acl列表

2.3 默认权限设定

当想要一个目录有特殊用户,想要所有新的出现的文件都拥有这个特殊用户,
setfacl -m d:u:student:rwx westos 会产生一个默认的权限列表,当在该目录下建立新的文件或目录时会继承这个列表,只针对这个新出现的文件或目录,已经建立的文件或目录不会继承
当然,也可以添加默认用户组

示例步骤:1. 打开两个shell,一个监控 watch -n 1 “getfacl westos,getfacl westos/demo1;ls -ld westos”, 一个先设定默认权限权限 setfacl -m d:u:student:rwx westos。通过ls -ld westos查看是否开启特殊权限列表(有+号)
2.当添加新的文件时,查看文件的特殊列表,发现会继承之前设定的默认列表
3. 对于之前就已经存在的文件,不会继承。
注:当目录westos本身以及已经建立的文件westos/demo1想要添加特殊用户时,需要setfacl -m u:student:rwx westos;setfacl -m u:student:rwx westos/demo1
初学Linux之文件特殊权限与acl列表
初学Linux之文件特殊权限与acl列表