文件的sticky bit

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于

该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件

但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录

具有写权限, 也不能删除该文件.
比如/tmp有设置了o+t,
drwxrwxrwt.   8 root root  4096 Nov 28 11:30 tmp
如果用户xxxx在/tmp下touch一个文件,则只能xxx本人删除,其它用户都对tmp目录有写权限,但还是不能删除/tmp下的文件

时间: 2025-01-04 04:02:43

文件的sticky bit的相关文章

Linux文件的三种特殊权限SUID、SGID、STICKY

三种特殊的文件系统格式: 1>. SUID 作用对象: 只能作用在二进制的可执行文件,也就是说它本身运行起来就是一个进程. 效果: 没有suid权限的二进制文件, 能否执行取决于当前用户有无对该文件执行权限, 执行之后,进程的拥有者也是当前系统用户. 被服务suid后, 当文件被运行后, 进程的拥有者不是系统当前的用户, 而是文件的所属者. 命令: chmod u+s 文件 2>. SGID SGID权限分为两种情况, 分别为作用在文件上, 作用在目录上. a>. 作用在文件上, 一旦一

linux文件权限位SUID,SGID,sticky的设置理解

SUID含义:文件的该位被设置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来           执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超级用户           的特权了,这是该位将变成一个安全漏洞,因此不要轻易设置该位. SGID含义:运行者将具有文件所有组的权限. 粘合位:  要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映像,这样做是为了节省大           型程序的启动时间,但是会占用系统资源,因此设置

Linux文件和目录的粘滞位(sticky bit)带来的困惑(转)

今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google上搜索"rwt linux",终于发现了问题,发现这种用法的名字是"文件的粘滞位(sticky)位&

Linux文件和目录的粘滞位(sticky bit)

今天维护系统时发现一个非常诡异的问题:AAA用户和BBB用户同属AAA组,但用AAA用户创建的文件,权限设置为777后,还是不能用BBB用户删除.诡异! 几经周转,发现AAA用户创建文件位置的上层目录的权限是drwxrwxrwt,做开发这么多年了,还没见过所谓"t"的权限,于是找了一位公司的linux大师帮忙,大师噼里啪啦的做了一堆试验后,然后在google上搜索"rwt linux",终于发现了问题,发现这种用法的名字是"文件的粘滞位(sticky)位&

特殊权限SUID,SGID,Sticky

SUID属性 SUID属性属性只能运用在可执行文件上,当其他用户执行该文件时,临时拥有该文件所有者的权限.典型的有passwd文件,因为SUID属性,所以一般用户在使用passwd修改命令时,临时拥有了passwd的拥有者root的权限.使用命令"ls -l "或"ll"查看文件时,如果如果可执行文件所有者权限的第三位是一个小写的"s"就表明该执行文件拥有SUID属性. [[email protected]~]# ls -l /etc/passw

文件操作 之 各类函数

chmod 头函数: #include < sys/stat.h> 函数定义: int chmod(const char *path, mode_t mode); int fchmod(int fd, mode_t mode); 函数说明: chmod()会依参数mode 权限来更改参数path 指定文件的权限. fchmod()会依参数mode 权限来更改参数fd 所指文件的权限.参数fd 为已打开文件的文件描述符.参数mode 和chmod ()函数一致. 返回值: 权限改变成功则返回0,

【Linux】理解setuid()、setgid()和sticky位

详见: http://blog.csdn.net/m13666368773/article/details/7615125 Linux SETUID机制 (1)进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是取决于运行该命令的用户身份的uid/gid,以该身份获取各种系统资源. (2)对一个属主为root的可执行文件,如果设置了SUID位,则其他所有普通用户都将可以以root身份运行该文件,获取相应的系统资源. (3)可以简单地理解为让普通用户拥有可以执行"只有root权限才能

C语言stat()函数:获取文件状态

相关函数:fstat, lstat, chmod, chown, readlink, utime 头文件:#include<sys/stat.h>  #include<uninstd.h> 定义函数:int stat(const char * file_name, struct stat *buf); 函数说明:stat()用来将参数file_name 所指的文件状态, 复制到参数buf 所指的结构中. 下面是struct stat 内各参数的说明: 1 struct stat {

Sticky

功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除所有的已有文件:如果为此类目录设置Sticky权限,则每个用户能创建新文件,且只能删除自己的文件: 管理文件的Sticky权限: chmod o+|-t FILE... 展示位置:其它用户的执行权限位 如果其它用户原本有执行权限,显示为小写t; 否则,显示为大写T: 系统上的/tmp和/var/tmp目录默认均有sticky权限: