中国计算机技术交流群共同交流学习,来的加我微信拉你进群958038508Linux 的 SUID、SGID、粘滞位(Sticky Bit) 是超越常规 rwx 的三类特殊权限,分别解决临时提权、组权限继承、公共目录防删三大核心场景,原理与行为清晰可区分。仅对可执行文件生效(对目录无效)。 当用户执行带 SUID 的文件时,进程临时以文件所有者的 UID 运行,而非执行者自身 UID;程序退出后权限立即恢复/usr/bin/passwd:普通用户执行时临时获得 root 权限,修改 /etc/shadow(仅 root 可写)对可执行文件 进程临时以文件所属组 GID 运行,执行者继承该组权限;程序退出后恢复。 对目录(最常用) 目录下新建文件 / 子目录自动继承父目录的 GID,而非创建者的主组;用于团队共享目录,保证文件归属统一。 团队共享目录 /data/dev:所有成员创建的文件自动归 dev 组,无需手动 chgrp。 核心原理 仅对目录生效(对文件无意义), 规则:目录内文件仅所有者、目录所有者或 root 可删除 / 重命名;即使用户对目录有 w 权限,也不能删他人文件。 解决:公共可写目录(如 /tmp)中 “谁都能写、谁都能删” 的安全问题。 权限标识与数字 符号:其他用户执行位 x 变为 t(小写 t 有 x;大写 T 无 x,粘滞位仍生效)。 数字:八进制高位 1(如 1777 = 粘滞位 + rwxrwxrwx)。 /tmp、/var/tmp:所有用户可读写,但只能删自己的文件。计算
Umask(可以在/etc/profile和/etc/bashrc脚本里面修改umak的值):
root用户新建立文件夹权限是755 这个数是因为root的umask是022,所以默认777-022就是755
root用户新建立文件的权限是644 这个数是因为rott的umask是022,所以默认666-022就是644
普通用户新建立文件夹权限是775 这个数是因为普通用户的umask是002,所以默认777-002就是775
普通用户新建立文件权限是664 这个数是因为普通用户的umask是002,所以默认666-002就是664
1、-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置
2、-rwSr–r-- 表示SUID被设置,但所有者权限中可执行位没有被设置
3、-rwxr-sr-x 表示SGID和同组用户权限中可执行位被设置
4、-rw-r-Sr-- 表示SGID被设置,但同组用户权限中可执行位没有被社
例如上面的-rwsr-xr-x的值为:
1 0 0 1 1 1 1 0 1 1 0 1 三位一组转成十进制就是4755
-rw-r-sr–的值为:
0 1 0 1 1 0 1 0 0 1 0 0 三位一组转成十进制就是2644
粘滞位sgid suid:
针对目录,目录中的文件只有创建者才能删除
例:chmod o+t
sgid针对目录的,目录中所属组继承父目录的所属组。
例:chmod g+s
suid针对文件建立:准许该文件其它没有权限的用户也能使用这个文件进行一系列的类似root权限的操作。
列如:给vim加suid权限,那普通用户也能vim /etc/shdow进行修改文件了。
chmod u+s /usr/bin/vim
查找哪些文件用了suid:
find /usr/bin/vim -perm 4755
中国计算机技术交流群共同交流学习,来的加我微信拉你进群958038508