一、基本权限名词:ACL(可以针对文件或目录,设置更多用户的权限,是对UGO的补充)
语法: setfacl -m u:alice:rw- /home/test.txt
命令 设置 用户或组:用户或组名:权限 文件对象
1、setfacl 可以完成chmod 的工作
chmod的工作可以改变属主权限,属组权限,改其他人的权限
setfacl -m u::rwx /home/test.txt
setfacl -m g::rwx /home/test.txt
setfacl -m o::rwx /home/test.txt
以上三条命令等同于 chmod 777 /home/test.txt
getfacl :查看文件权限,删除了根路径
file: /home/test.txt
owner: root 属主:root
group: root 属组:root
user: alice:rw 用户:alice:rw
group : : 组:属组:rwx
mask : rwx 掩码:rwx (与前面u,g 取交集,才会得出u,g的最后权限)
- 删除用户的权限
setfacl -x u:alice /home/test.txt(删除该用户的所有acl信息)
setfacl -b /home/test.txt (删除主,组的所有acl信息)
实验步骤:
- touch /home/test.txt
- ll /home/test.txt
- useradd alice
useradd jack
- 设置某个用户权限setfacl -m u:alice::rw- /home/test.txt
- 查看设置后的权限 getfacl /home/test.txt
(用ll 查看会出现假象)
- 切换用户:su - alice
- 检验该用户是否可读可写可执行
二、文件属性 chattr (常用于锁定某个文件,拒绝修改)
查看属性 lsattr 文件名
语法: chattr +i 文件名 (加上不能删除,更改,重命名的属性)
检验方法:rm -rf 文件名 (不允许操作则成功)
想要去除则chattr -i 文件名
三、进程掩码umask 默认权限的设置(系统默认0022)
文件夹权限默认755=777-022
文件默认644 (去掉执行权)
进程掩码可以更改#umask 0000 //则创出文件夹权限默认为777,文件默认权限为666
- ls 可以查看文件夹里面的内容
- ls -d 查看文件夹本身
- ll 查看文件夹中内容的属性
- ll -d 查看文件夹本身的属性
四、suid 针对文件/程序时,具备临时获得属主权限
实验目的:为cat 程序加上suid 权限
实验步骤:
- which cat 查看命令的位置
- chmod u+s /usr/bin/cat 授予suid权限
- su - alice 切换到普通用户家
- cat /root/file1.txt 使用cat程序的用户(任何用户),将临时获得属主的权限
- 去除权限chmod u-s /usr/bin/cat
sgid(使子文件,自动继承目录的属组)
chmod g+s 文件夹
stick (只有属主和超管可以删除,防止被普通用户删除)
chmod o+t dir1 增加权限
chmod o-t dir1 去除权限