Linux:如何在目录和文件上使用粘滞位

举报
Tiamo_T 发表于 2022/04/05 17:31:36 2022/04/05
【摘要】 您将在 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.
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。