除了标准的读、写和执行权限外,Linux 还提供用于高级访问控制的特殊权限。我们将介绍的最后一个特殊权限是粘滞位 (sticky bit)。
什么是粘滞位?
粘滞位是一种可以应用于目录的权限设置。当一个目录设置了粘滞位后,该目录中的文件只能由文件所有者、目录所有者或 root 用户删除或重命名。这对于多个用户需要在其中创建和管理自己文件的共享目录特别有用,而不会相互干扰。这个概念是Unix 文件权限粘滞位管理的关键部分。
实际示例:/tmp 目录
Linux 中粘滞位的一个常见用例是/tmp目录,这是一个用于临时文件的全局可写位置。让我们检查一下它的权限:
$ ls -ld /tmp
drwxrwxrwt 17 root root 4096 Dec 15 11:45 /tmp
注意权限字符串末尾的t(rwxrwxrwt)。这个t表示设置了粘滞位。因此,虽然任何用户都可以在/tmp中创建文件,但他们不能删除或移动其他用户创建的文件。这可以防止一个用户干扰另一个用户在该共享空间中的工作。
如何设置粘滞位
您可以使用chmod命令通过两种方式设置粘滞位:符号模式或八进制(数字)模式。
要使用符号模式添加粘滞位:
chmod +t my_shared_dir
要使用八进制模式设置权限,您需要在标准三位权限代码前加上1。粘滞位的数字表示是1。
# 这将权限设置为rwxr-xr-x 并在其上设置粘滞位
chmod 1755 my_shared_dir
理解粘滞位对于有效管理多用户环境和保护共享目录至关重要。