linux粘着位

在linux中,如果对一个目录具有写权限,那么我们就可以在这个目录下创建删除文件。

现在我们要创建这样一个目录,我们可以在这个目录里创建文件,但是其他用户不能删除这个文件。

在这里就要用到一个特殊的权限:粘着位

在linux中有三种特殊权限,分别为:

SetUID  =  4:在所有者设置的权限

SetGID  =  2:在所属组设置的权限

粘着位  =  1:在其他人的位置设置的  (使用  t  来表示)

一、SBIT粘着位权限的作用

如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使用。

如果没有粘着位,因为普通用户有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件外,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

普通文件的sticky位会被linux内核忽略。

目录的sticky位表示这个目录里的文件只能被owner和root删除 。

/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘着位,它的作用便是让用户只能删除属于自己的文件。

  1. $ ls -dl /tmp
  2. drwxrwxrwt 15 root   root  .........

那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 假如本来在该位上有x, 则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T) 。

例如:
tmp目录的权限是777,也就是任何用户对这个目录里的文件都具有全部权限,包括新建和删除。
但是问题来了,比如a用户在这个目录里新建一个文件还没有编辑完呢,有事回家了,准备等回来继续编辑。这时候b用户进来了,看到里面了a用户建立的文件,不知道有什么用,于是就给删除了,这样就等于出现了管理混乱,每个用户都可以随便删除其他用户的文件。

那么解决的办法就是给tmp目录的其他人身份添加粘着位SBIT权限,那么按照前面SBIT权限的说明,除了root外的任何普通用户在这个目录里都只能删除自己建立的文件,而不能删除其他用户的文件,这样就保证了不会出现混乱情况。

这就是粘着位SBIT权限的作用。

而其实/tmp目录不用我们特别设置SBIT权限的,他默认就本身带有这个权限的,如图:

看到了吧,其他人身份的权限是rwt,也就是在rwx基础上多了一个t,这个t就是SBIT粘着位权限的意思。

二、SBIT的设置与取消
那么粘着位的设置是不会和SUID ,SGID那么危险的。
只要我们有需要我们就可以新建一个具有1777权限的目录来作为多用户可以共享的目录,也挺方便的。

1、设置粘着位
A、chmod 1777 目录名
B、chmod o+t 目录名

2、删除粘着位
A、chmod 777 目录名
B、chmod o-t 目录名

时间: 2025-01-07 11:56:45

linux粘着位的相关文章

Linux 粘着位(sticky bit)

当设置粘着位时只有root或者owner才能删除.重命名文件. 示例: 用户apple默认组为fruit. [[email protected] ~]# id apple uid=1001(apple) gid=1001(fruit) 组=1001(fruit) step1 显示water文件夹信息,文件夹当前未设置粘着位. [[email protected] /]# ls -l | grep water drwxr-xrwx.   4 root root  4096 8月  10 21:02

linux shell基础语法

1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 1.1作为可执行程序 将上面的代码保存为t

Linux系统安全基础知识

基本的系统安全 物理安全和登录安全 禁用root登录和sudo 可插拔认证模块(PAM) 基于PAM的口令安全和口令策略 基于PAM的访问控制 1.基本的系统安全 安全的磁盘布局 使用挂装选项提高文件系统的安全性 查找并取消文件/目录的非必要的特殊权限 避免安装不必要的软件包 配置软件包更新的Email通知 关闭不必要的服务 关闭IPv6的内核功能 1) .安全的磁盘布局 1.如果是新安装系统,对磁盘分区应考虑安全性: 1)根目录(/)中必须包括 /etc./lib./bin./sbin,即不能

Linux运维学习笔记之二:常用命令3

101.paste :将多个文件按列队列合并 说明 paste命令用于将多个文件按照列队列进行合并 语法 paste (选项) 指定需要合并的文件列表 选项 -d<间隔字符>或--delimiters=<间隔字符>:用指定的间隔字符取代跳格字符: -s或--serial串列进行而非平行处理. 实例 paste inotify_client_100.log inotify_server_100.10g paste inotify_client_100.log inotify_serv

Linux 特殊位权限s,t,i,a

Linux文件权限除了r.w.x外还有s.t.i.a权限 s:文件属主和组设置SUID和GUID 文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否则s权限并不能正真生效(chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/shadow文件的权限确可以修改自己的密码. ls -

Linux中文件权限的一些知识

读<Linux命令行和shell脚本编程大全>,想起来在入侵中一些Linux文件权限的一些问题,简单记一下要点: umask中 0022中第一个0带便粘着位,八进制含义为: 0      0       0 SUID SGID T位 看到关于应急响应中出现的问题,作者说设置了facl会造成一些root用户的读写问题.[我手工设置了 发现依然能编辑.删除,存疑] https://www.91ri.org/10394.html 作者还提到了,因为隐藏属性会导致文件无法被删除: 关于这个找到一个 h

Linux相关命令

设置默认启动WIN7:终端sudo gedit /boot/grub/grub.cfgset default="0" 改为set default = "4" (一般是4) 一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回上一次所在的目录 cd ~ 或 cd 回当前用户的宿主目录 mkdir 目录名 创建一个目录 rm

Linux运维 第二阶段 (五)权限管理

Linux运维第二阶段(五)权限管理 一.权限管理(解决用户和身份不足的问题) >#dumpe2fs  -h /dev/sda2             (查询指定分区详细文件系统信息的命令,-h仅显示超级块中的详细信息) #mount  -o remount,acl  /             (重新挂载根分区,加入acl权限) >acl基本命令: #getfacl  文件名                      (查询文件的acl权限) #setfacl  -m  u:用户名:权限

linux shell 使用总结

为什么执行脚本要使用./ +脚本名来执行脚本理解:因为如果直接使用脚本名,那么linux 系统会去path 路径查找如去/bin usr/bin 等查找,这个时候会找不到这个脚本名字,就会报错.使用./ 这个时候就相当于告诉系统要在当前路径底下查找. 通过简单例子来分析for 循环的使用 #!/bin/bashfor skill in Ada Coffe Action Javado echo "I am good at ${skill}Script"done 从实际使用过程发现for