文件特殊权限:
- SetUID —— SUID
- SetGID —— SGID
- StickBIT —— SBIT
特殊权限尽量少修改
SUID 的功能(仅对文件)
- 只有执行的二进制程序才能设定SUID 权限
- 命令执行者对该程序有X权限
- 命令执行者在执行过程时获得文件属主身份
- SetUID权限只有在该程序执行中有效, 身份也改变
设定SetUID的方法:
4 代表SUID
chmod 4775 文件名
chmod n+s 文件名
s = S + x
ll /etc/shadow
ll /usr/bin/passwd
ll /bin/vi
passwd 命令只有SUID 权限, 所以普通用户可以修改自己的密码
cat 命令没有SetUID 权限, 所以普通用户不能查看 /etc/shadow/ 文件内容
ll /bin/cat
取消
chmod u-s abc
chmod 0775 abc
/usr/bin/locate
SGID 的功能:(可以对目录和文件)
- 同SUID
- 同SUID
- 改为“文件的属组”
- 同SUID
1chmod g+s abc2ll /usr/bin/locate3(slocate)4ll /usr/lib/mlocate/mlocate.db5locate abc
SetGID 针对目录的作用
- 普通用户必须对此目录拥有r 和x 权限, 才能进入此用户
- 普通用户在此目录中的有效组会变成此目录的属组
- 若普通用户对此目录拥有w 权限时, 新建文件默认属性是这个目录的属组
设定SetUID
2代表 SGID
chmod 2755 文件名
chmod g+s 文件名
1cd /tmp/2mkdir test3chmod g+s test4ll -d test/5chmod 777 /test/6su -user17cd /tmp/test/8touch abc9ll
取消
chmod 0755 文件名
chmod g-s 文件名
StickyBIT(仅对目录)
- 对目录有效
- 普通用户对该目录有w 和x 权限
- 如果没有黏着位, 因为普通用户拥有w 权限, 所以可以删除此目录下所有文件, 包括其他用户建立的文件。一旦赋予了黏着位, 除了root 可以删除所有文件, 普通用户就算拥有w 权限,也只能删除自己建立的文件, 但是不能删除其他用户建立的文件
设置:
chmod 1755 目录名
chmod o+t 目录名
取消:
chmod 0755 目录名
chmod o-t 目录名
ll -d /tmp/
不可改变位权限:
chattr 权限
1.命令格式:
chattr [+-=][选项] 文件或目录名
选项:
- -i:insert
- -a:append
1chattr +i abc2lsattr abc3
4chattr +a dt5lsattr ddt6
7vi dt 无法操作8echo bbbb -> dt # (输出重定向)9cat dt
lsattr 选项 文件名
选项:
- -a:显示所有文件
- -d 目录名