今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除。诡异!
几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google上搜索"rwt linux",终于发现了问题,发现这种用法的名字是“文件的粘滞位(sticky)位“。它的作用是:普通文件的sticky位会被linux内核忽略,但
目录的sticky位表示这个目录里的文件只能被owner和root删除,没错这就是问题本质,也和我的现象相吻合。于是用root用户,对这个文件夹chmod -t 后,用BBB用户就可以删除刚才AAA用户创建的文件了。一切正常了。哇。。。。世界太平了!真是长见识了。所以将这个知识点整理如下:
文件的粘滞位(sticky)位是作什么用的?
普通文件的sticky位会被linux内核忽略,
目录的sticky位表示这个目录里的文件只能被owner和root删除
粘着位(Sticky bit)
如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使用。
# chmod 1770 xxx
举一个linux下的常见目录来做例子,也就是 /tmp 目录来说一下粘连位的作用。
#ls -dl /tmp
drwxrwxrwt 4 root root .........
注意other位置的t,这便是粘连位。
我们都知道,/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘连位,它的作用便是让用户只能删除属于自己的文件。
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 假如本来在该位上有x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T) 。
3)粘着位(sticky)
eg:
chmod 777 abc
chmod +t abc
等价于
chmod 1777 abc
在以前旧的系统当中,如果一个程序文件一旦设置了粘着位,
那么当该程序中止的时候他的所有指令段将被保存到系统的交换分区当中,
再次运行时可以更快的调入系统.
不过现在的操作系统已经不再使用这种功能了.
但这并不表示这一功能已经完全被废弃.
当一个目录设置为粘着位时,它将发挥特殊的作用,
即当一个目录被设置为"粘着位"(用chmod a+t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。
分享到:
相关推荐
在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问。为我们熟知的一个文件或目录可能拥有三种权限,分别是读、写、和执行操作,在这里不做详细说明。我们创建...
- **Sticky Bit (粘滞位)**:用于保护目录内的文件不被其他用户删除或移动。 **2.4 隐藏属性 (ATTR)** 除了基本权限和特殊权限外,还可以通过隐藏属性对文件进行更精细的控制。这些属性可以通过 `chattr` 命令来...
在Linux操作系统中,粘滞位(Sticky Bit)是一个特殊权限位,主要用于控制对特定目录的文件删除操作,尤其在多用户环境中,确保用户只能删除自己创建的文件,而不能随意删除他人文件。这个功能最初是为了保护 `/tmp`...
粘滞位(sticky bit)主要应用于目录,当一个目录设置了sticky bit后,只有文件的拥有者或root才能删除或重命名自己的文件。即使其他用户对该目录有写权限,也不能随意删除或重命名不属于他们的文件。 ### 使用`...
通过对Linux文件和目录权限的深入了解,我们可以更加安全高效地管理和操作文件系统。理解不同类型的文件、它们的权限以及如何使用`chown`、`chgrp`和`chmod`等命令进行权限管理,对于任何Linux用户都是非常重要的。...
对于目录,还有一个特殊权限——粘滞位(sticky bit),它防止非目录所有者删除目录内的文件。使用`chmod a+t dir`可以为目录设置粘滞位。 递归设置所有权和权限可以使用`-R`选项,如`chmod 764 . -R`会递归地将当前...
在Linux操作系统中,文件和目录的权限管理是确保系统安全性的重要一环。本文将深入探讨如何通过`ls -l`、`chmod`、`chown`以及`chgrp`等命令来查看和修改文件及文件夹的权限。 #### 文件属性解读 在Linux中,可以...
还有一个粘滞位(sticky bit),在目录的权限中,用`t`表示,它防止非所有者删除目录中的文件,常用于`/tmp`这样的公共目录。 此外,`chattr`命令可以为文件添加特殊权限,如`-I`选项禁止文件被修改,`a`选项禁止...
在命令中还提到了一些特殊权限,例如setuid和setgid,以及粘滞位(sticky bit)。setuid和setgid已在上述内容中解释。而粘滞位,当其被设置在目录上时,意味着只有文件的所有者(或超级用户)才能删除或重命名该目录中...
Linux 系统中除了我们熟知的读(r)、写(w)、执行(x)权限外,还有三个比较特殊的权限,分别为:setuid、setgid 和 stick bit(粘滞位)。这三个特殊权限在 Linux 系统中扮演着重要的角色,下面将对它们进行详细的解释...
- 粘滞位(Sticky Bit):通常用于目录,使得只有文件的所有者和root用户能够删除或重命名目录中的文件。 5. 权限的数值表示 权限也可以用八进制数来表示,每个权限类型(读、写、执行)对应一个数值,分别是4、2和...
- **Sticky(粘滞位)**:用于目录,当其他用户的执行权限位被t替代,设置Sticky权限后,只有文件所有者或root才能删除目录内的文件,即使其他用户拥有文件的写和执行权限。 3. **表示方式**: 特殊权限在Linux中...
本文详细介绍了Linux系统中用户组群与文件目录的权限管理。文章首先概述了用户账户分类和相关文件(/etc/passwd 和 /etc/shadow),接着讲解了各种用户管理命令如useradd、passwd、chage、usermod、userdel的功能和...
本教程聚焦于Linux中的特殊权限,包括ACL(Access Control Lists)、文件特殊权限(如SetUID、SetGID和Sticky Bit)以及系统命令sudo的权限管理。 1. **SetUID**(设置用户ID) SetUID权限允许一个文件(通常是二...
粘滞位通常用于目录,使得只有文件创建者能删除自己的文件,防止他人误删,如`chmod +t directory`。 通过这些命令和权限设置,运维人员可以在Linux环境中有效地管理用户、保障文件安全,并确保系统的正常运行。...
`chmod` 还可以用于修改特殊权限位,如SUID(Set User ID)、SGID(Set Group ID)和粘滞位(Sticky bit),这些特殊权限位可以进一步增强系统的安全性。 总之,`cat`、`chattr`、`chgrp` 和 `chmod` 是Linux环境中...
除了基本的rwx权限,Linux还提供了特殊权限位,如SUID(Set User ID)、SGID(Set Group ID)和Sticky Bit(粘滞位)。例如,使用`chmod 4755 filename`可以为程序设置SUID权限,这意味着当非root用户运行此程序时,...
特殊权限如SUID(Set User ID)、SGID(Set Group ID)和粘滞位(Sticky Bit)提供了额外的权限控制: 1. SUID:当一个可执行文件被设置了SUID位,运行时将以文件所有者的权限运行,如`chmod u+s file`。 2. SGID:...