一份菜单

UNIX / Linux:如何在目录和文件上使用粘性位

您将主要在UNIX / Linux中的目录上设置粘性位。

如果将粘性位设置为目录,则其他用户无法删除或重命名该目录中的文件(或子目录)。

在目录上设置粘滞位后,只有所有者和root用户才能删除/重命名该目录中的文件或目录。

1. Set the 黏bit 上 Directory

下面的示例在目录上启用粘性位。

使用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时,他’ll see the “禁止操作”消息如下所示。

$ 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. Set the 黏bit 上 File

在文件上设置粘性位几乎没有用,并且没有’什么都不做。在某些较旧的* nix风格上,启用粘滞位的可执行文件将在第一次执行后加载到交换存储器,这会加快所有后续执行的速度。这不再是真的。

维基百科:

Currently, this behavior is 上 ly 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 黏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.

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 24 评论… 加一 }

  • 奇穆里 2011年2月1日,上午3:19

    谢谢,很棒的文章。我知道那很可怕,但对刷新记忆很有帮助ðŸ™,

  • 奇穆里 2011年2月1日,上午3:24

    哦,我忘了。您确定文件上有固定的位吗?我认为在现代Linux发行版上,它什么也不做,只是被忽略或禁止。

  • 阿什温 2011年2月1日,上午4:21

    一个非常好的复习。对于任何* nix用户,这些都是非常重要的基础。谢谢,巴拉。

  • 竿 2011年2月1日,上午6:52

    不错的文章。
    非常清楚。
    老兄,让更多的来吧!

  • SaveTheRbtz 2011年2月1日,下午5:53

    从FreeBSD’s man 8 sticky:
    描述
    一种特殊的文件模式,称为粘贴位(模式S_ISTXT),用于指示目录的特殊处理。对于常规文件,它将被忽略。

  • 竿 2011年2月2日,上午4:24

    STICKY(8)BSD系统管理员’s手动STICKY(8)

    名称
    黏— 黏text and append-only directories

    描述
    一种特殊的文件模式,称为粘滞位(模式S_ISVTX),用于指示对共享的可执行文件和目录的特殊处理。看到
    chmod(2)或文件/usr/include/sys/stat.h中有关文件模式的说明。

    棘手的文本可执行文件
    粘性位对可执行文件没有影响。关于文本图像是否保留在内存中的所有优化都由内核处理’s virtual mem-
    操作系统。

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2011年2月2日,上午10:59

    @ 奇穆里,@ SaveTheRbtz,@ 竿,

    感谢您指出。我已经相应地更新了这篇文章。

  • 麦格什·巴什卡兰(Magesh Bhaskaran) 2011年2月3日,上午12:17

    你好,先生,

    在阅读您的书linux 101 hacks之后,我只想说一件事,那就是“Hats off ”真的很有趣。
    您能给我任何建议/说明来增加我在Linux中的知识吗?

    谢谢,
    麦格什·巴什卡兰(Magesh Bhaskaran)

  • 阿图尔·辛格(Atul Singh) 2011年2月7日,上午3:16

    你好
    这是非常有用的信息,谢谢。
    但是我在系统中尝试了这种技术..这是目录层次结构。
    / atul(drwxrwxrwx)
    / atul / dir1(drwxdrwxdrwxt)

    使用我的grp伴侣的另一个用户在使用时无法删除我的目录
    rm / atul / dir1

    但是他在使用时删除了我的目录。
    rm -rf / atul / dir1

    现在,有什么用“Sticky Bit” ????

    如果我在某处做错了,请告诉我

    谢谢
    阿图尔·辛格(Atul Singh)

  • 萨默·安贝卡(Samer Ambekar) 2011年2月8日,上午8:20

    嗨Ramesh,

    关于粘性位的好文章。我正在等待您提供有关设置用户ID和组ID的文章。

  • 费利克斯·弗兰克 2011年2月11日,上午6:32

    Atul:如果要使/ atul / dir1不可移动,则必须在/ atul上设置粘性位。

  • 阿图尔·辛格(Atul Singh) 2011年2月14日,上午1:02

    :Felix:谢谢Felix,这很有效… 🙂

  • Ashish Sood 2011年2月23日,上午2:22

    知识渊博
    谢谢

  • 阿吉特 2011年2月28日,上午5:43

    您的博客总是有帮助的….:)

  • 普拉迪普 2011年12月6日,上午12:21

    好人

  • 西瓦库马尔 2012年8月10日,上午9:24

    真的我非常感谢您。您能告诉我inode如何映射到文件吗?

  • bai 2012年9月25日,上午8:41

    /文件系统

    我使用的是sunsolaris平台,因为我有我的glassfish服务器。我的问题是我的服务器在一个主文件夹下创建了一些动态文件夹和文件。我如何才能将glassfish服务器创建的所有文件和文件夹永久授予rwx rwx rw权限,我真的很担心有人能帮助我。
    提前致谢。

  • 山茱 2012年11月4日,晚上7:55

    粘性位为我们的unix目录提供了安全性。谢谢先生…

  • 保罗 2013年4月15日,上午2:59

    有关文件上粘性位的信息是’t entirely correct:

    > gunzip somefile
    gzip:somefile设置了粘滞位– file ignored

  • 卡尔提克 2013年10月11日,上午10:30

    很好,很有用,谢谢巴拉

  • 桑迪普·帕塔德(Sandeep Patade) 2013年11月30日,上午4:57

    嗨我’ve一个查询。创建新文件夹时如何自动分配粘性位。
    1)我创建了一个名为“test”并为该文件夹分配粘贴位。但是当用户在“test”文件夹,粘性位将不适用于新文件夹。因此,在将文件创建到该新文件夹中时,无论谁将被删除该文件。

    所以任何想法,我们可以在用户创建新文件夹时自动设置粘性位?

  • 妮娜·斯蒂格(Nina Steiger) 2014年1月25日,下午12:00

    任何想法如何在新文件夹上自动设置粘性位?
    使用ACL并为其他用户设置默认ACL

    setfacl -d -m o ::–T folder

    不幸地是行不通的!

  • 苏雷什 2015年9月19日,下午12:26

    嗨斯里

    我是某个拥有记忆棒的目录(口味)的所有者,我想删除一个文件,但是我无法删除文件,任何人都可以告诉我答案

  • 匿名 一月6,2016,9:39上午

    qmail使用主目录上的粘滞位暂时暂停传递

发表评论