![Linux上特殊权限的情况](https://linux22.com/image/1565350/Linux%E4%B8%8A%E7%89%B9%E6%AE%8A%E6%9D%83%E9%99%90%E7%9A%84%E6%83%85%E5%86%B5.png)
我是 Linux 系统的初学者,在学习命令时,我学会了研究权限和所有者。我理解所有命令,但不理解特殊权限。我指的是chmod u+s
、chmod g+s
和chmod u+t
。有人能帮我解释一下吗?
答案1
s 位或粘着位允许您影响可执行文件的执行或目录的处理方式。有关其工作原理设置用户标识也相当重要。
常见用途有:
粘性位最常见的用途是用于类 Unix 操作系统文件系统中的目录。设置目录的粘性位后,文件系统会以特殊方式处理此类目录中的文件,因此只有文件所有者、目录所有者或 root 才能重命名或删除该文件。
也:
setuid 和 setgid(分别是“执行时设置用户 ID”和“执行时设置组 ID”的缩写)是 Unix 访问权限标志,允许用户分别以可执行文件所有者或组的权限运行可执行文件并更改目录中的行为。
因此,您可以使用它来“保护”目录或让用户执行需要提升权限的程序,而无需明确授予用户这些权限。例如,您可以拥有一个由 root 拥有的脚本,该脚本设置了粘性位,如果您执行该脚本,它将像您是 root 一样执行。
如果你看看手册页您会发现 s 代表 setuid/gid 位,而 t 代表删除位。
在执行时设置用户或组 ID (s)、限制删除标志或粘滞位 (t)
也可以看看:
答案2
chmod u+s chmod g+s chmod u+t
+ 运算符将模式添加到类中。例如:
chmod u+s
将 s 模式 (setuid) 添加到 u 类(文件所有者)。
维基百科文章对此进行了很好的解释: https://en.wikipedia.org/wiki/Chmod
另请参阅:
info chmod
man chmod