8. 粘位

除了标准的读、写和执行权限外,Linux 还提供用于高级访问控制的特殊权限。我们将介绍的最后一个特殊权限是粘滞位 (sticky bit)

什么是粘滞位?

粘滞位是一种可以应用于目录的权限设置。当一个目录设置了粘滞位后,该目录中的文件只能由文件所有者、目录所有者或 root 用户删除或重命名。这对于多个用户需要在其中创建和管理自己文件的共享目录特别有用,而不会相互干扰。这个概念是Unix 文件权限粘滞位管理的关键部分。

实际示例:/tmp 目录

Linux 中粘滞位的一个常见用例是/tmp目录,这是一个用于临时文件的全局可写位置。让我们检查一下它的权限:

$ ls -ld /tmp
drwxrwxrwt 17 root root 4096 Dec 15 11:45 /tmp

注意权限字符串末尾的trwxrwxrwt)。这个t表示设置了粘滞位。因此,虽然任何用户都可以在/tmp中创建文件,但他们不能删除或移动其他用户创建的文件。这可以防止一个用户干扰另一个用户在该共享空间中的工作。

如何设置粘滞位

您可以使用chmod命令通过两种方式设置粘滞位:符号模式或八进制(数字)模式。

要使用符号模式添加粘滞位:

chmod +t my_shared_dir

要使用八进制模式设置权限,您需要在标准三位权限代码前加上1。粘滞位的数字表示是1

# 这将权限设置为rwxr-xr-x 并在其上设置粘滞位
chmod 1755 my_shared_dir

理解粘滞位对于有效管理多用户环境和保护共享目录至关重要。

登录以保存您的学习进度

登录

练习

为了巩固您对文件权限(包括粘滞位等特殊权限)的理解,请尝试以下实践实验。它们将帮助您了解这些概念如何在实际场景中应用。

  1. Linux 用户组和文件权限 - 练习创建用户和组,以及操作文件所有权和权限。此实验为理解特殊权限如何工作奠定了基础。
  2. 删除和移动文件 - 学习如何删除和移动文件,并了解权限(包括目录上的粘滞位)如何限制这些操作。
  3. 查找文件 - 练习定位文件和设置访问控制,以加强文件权限在管理文件访问和修改方面的重要性。

测验

在长格式目录列表(ls -l)中,权限字符串中的哪个单个字符表示设置了粘滞位?请用单个小写英文字母回答。