Linux:如何在目录和文件上使用粘滞位
您将在 Linux 中的主要目录上设置粘性位。
如果将粘滞位设置为目录,则其他用户无法删除或重命名该目录中的文件(或子目录)。
当在目录上设置粘性位时,只有所有者和 root 用户可以删除/重命名该目录中的文件或目录。
1.在目录上设置粘性位
下面的示例启用目录上的粘性位。
使用 chmod 命令设置粘滞位。如果您在 chmod 中使用八进制数,请在指定其他编号权限之前给出 1,如下所示。下面的示例为用户、组和其他人提供了 rwx 权限(并将粘性位添加到目录中)。
$ chmod 1777 dir
或者,您可以使用chmod 命令仅将粘滞位分配给现有目录(无需触及任何其他用户、组和其他权限),如下所示。
$ chmod +t dir
将粘性位分配给目录后,您将看到 (t) 作为权限中的最后一个字符。在此示例中,它是 drwxrwxrwt。
$ ls -ld /home/bala/dir
drwxrwxrwt 2 bala bala 4096 2011-01-28 14:09 /home/bala/dir
$ ls -l dir
total 8
-rwxrwxrwx 1 bala bala 20 2011-01-28 14:12 bala.txt
-rwxrwxrwx 1 guest guest 41 2011-01-28 14:13 guest.txt
在上面的示例中,由于 dir 对每个人都具有 rwx 权限,因此所有其他用户都可以在此目录下创建他们的文件或目录。但是,即使 dir 下的子目录或文件对每个人都具有 rwx 权限,也只有它们的所有者才能删除或重命名这些文件和目录。由于粘位,其他用户无法删除或重命名它。
在上面的示例中,bala.txt 对用户、组和其他人具有 rwx。但是,当访客用户试图删除文件bala.txt 时,他会看到如下所示的“Operation not permission”消息。
$ su guest
Password:
$ cd /home/bala/dir1
$ rm bala.txt
rm: cannot remove `bala.txt': Operation not permitted
请注意,/tmp 默认启用了粘滞位。直到现在你可能还没有注意到这一点。现在您知道为什么 /tmp 目录应该启用粘性位了。
$ ls -ld /tmp
drwxrwxrwt 3 root root 4096 Jan 31 08:29 /tmp
要从目录中删除粘性位,请执行以下操作。
$ chmod -t dir
2.在文件上设置粘滞位
在文件上设置粘性位几乎没有用,而且它没有任何作用。在一些较旧的 *nix 风格中,启用粘性位的可执行文件将在第一次执行后加载到交换内存,这会加速所有后续执行。这不再是真的了。
来自搜索内容:
Currently, this behavior is only operative in HP-UX, NetBSD, and UnixWare.
Solaris appears to have abandoned this in 2005.[citation needed] The 4.4-Lite
release of BSD retained the old sticky bit behavior but it has been subsequently
dropped from OpenBSD (as of release 3.7) and FreeBSD (as of release 2.2.1);
it remains in NetBSD.
No version of Linux has ever supported the traditional behavior.
- 点赞
- 收藏
- 关注作者
评论(0)