[s]:当一个具有执行权限的文件设置 [s](SetUID) 权限后,用户执行这个文件时将以文件所有者的身份执行。passwd 命令具有 SetUID 权限,所有者为 root(Linux 中的命令默认所有者都是 root),也就是说当普通用户使用 passwd 更改自己密码的时候,那一瞬间突然 “灵魂附体” 了,实际在以 passwd 命令所有者 root 的身份在执行,root 当然可以将密码写入 /etc/shadow 文件(root 是一个 bug 的存在,在 Linux 中就没有它不能干的事),命令执行完成后该身份也随之消失。

0. SetUID 条件:

必须具备以下几个条件(前提):

  • 只有可执行的二进制程序才可以设置 SetUID
  • 所有者必须对欲设置SetUID的文件具备 可执行 (x) 权限
  • 命令执行过程中,其它用户获取所有者的身份(灵魂附体)
  • SetUID 具有时间限制,即完成该程序执行后就消失(不能霸占住不放吧?)

1. 设置和取消 SetUID

设置 SetUID:

chmod 4xxx < file-name >chmod u+s < file-name >

取消 SetUID:

chmod xxx < file-name >chmod u-s < file-name >

案例:

SetGID

其实,SetGID 基本与 SetUID 相同,无非也就是一个设置所有者的权限,GID 为设置所属组的特殊权限!区别点在于:SetGID 也可以设置目录的相关 SetGID 权限!

0. SetGID条件:

针对文件:

  • 可执行的二进制文件
  • 命令执行者(即所属组)对该文件具备 x 权限
  • 执行时,执行者被所属组灵魂附体
  • 权限只在执行过程中有效

针对目录:

  • 普通用户对目录具备 r 和 x 权限,才可以进入到该目录
  • 普通用户在此目录中的有效组会变成此目录的所属组
  • 如普通用户对该目录具备w权限,新建文件的所属组为该目录的所属组

1. 设置和取消 SetGID

设置 SetGID

chmod 2xxx chmod g+s

取消 SetGID

chmod xxx chmod g-s

案例:
先用管理员身份在wang用户的家目录里建一个叫test1的目录
cd /home/wang
mkdir test1 之后切换wang这个用户,进入test1目录建一个叫hello.txt的文件
会发现,所有者为wang用户,但是组为root所有的组 su wang
cd /home/wang
vi hello.txt
随便输入点东西,shift+: wq保存退出,
会看见下图

[t]: 任何用户均可以往此目录写入文件,可以删除自己所创建的文件,root 自然有权限删除

0.作用:

  • 只对目录有效
  • 普通用户对该目录有 w 和 x 权限
  • 若没有粘滞位,则普通用户可以对目录下的文件/子目录进行删除操作(因为普通用户对目录具有 w 权限),包括其它用户建立的目录/文件;但若赋了 SBIT,则普通用户只能删除自己创建的文件/目录,而不能删除不属于自己的文件/目录!

案例:

使用root建立文件helloworld
mkdir helloworld
chmod 1777 helloworld

切换wang用户进入其中建文件hello.txt

切换zhang用户进入其中建文件 world.txt

zhang可以删除world.txt但是无法删除hello.txt

 

关于【s】和[t]字符的更多相关文章

  1. C语言 · 字符转对比

    问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...

  2. java字符乱码

    在java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码. 如下例子: BufferedReader br = null; try { br ...

  3. java 字节流与字符流的区别

    字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作 ...

  4. Linux字符设备驱动框架

    字符设备是Linux三大设备之一(另外两种是块设备,网络设备),字符设备就是字节流形式通讯的I/O设备,绝大部分设备都是字符设备,常见的字符设备包括鼠标.键盘.显示器.串口等等,当我们执行ls -l ...

  5. [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  6. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  7. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  8. 全网络最正确的让 Linux 开机进入字符界面的方法及设置 FrameBuffer 分辨率的方法

    引言 这个标题有点长,是为了在标题中就把问题说清楚,以便搜索引擎能够把有需要的朋友准确地带到我这里来.目前在网络上,很多关于 Linux 方面的知识是过时的和错误的.我标题中指出的两个知识点就是其中的 ...

  9. EasyPR--开发详解(7)字符分割

    大家好,好久不见了. 一转眼距离上一篇博客已经是4个月前的事了.要问博主这段时间去干了什么,我只能说:我去“外面看了看”. 图1 我想去看看 在外面跟几家创业公司谈了谈,交流了一些大数据与机器视觉相关 ...

  10. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

随机推荐

  1. 启动Tomcat服务器端口被占用解决方法

    Caused by: java.net.BindException: Address already in use: bind 1.输入 netstat -ano|findstr 8080,回车,显示 ...

  2. python appium app ui 自动化

    1.下载Android-SDK.夜神安卓模拟器.Appium.adb命令执行包并配置环境变量 2.打开夜神 3.打开Appium进行配置,配置如下 4.启动命令,到夜神bin目录下执行 adb con ...

  3. Django-配置镜像源,虚拟环境详解

    0.配源虚拟 全局配源 阿里云镜像站:https://developer.aliyun.com/mirror/ # 在cmd中操作,查找文件 C:\Users\Administrator>pip ...

  4. selenium中各个模块操作:下拉框、鼠标悬浮连贯、拼图拖拽操作、以及其他拖拽操作、连线操作

    1.下拉框的修改操作 方法一:定位到元素后,通过select选择对应的值 方法二:通过两次点击的方法:没有select的value属性时,采用click两次的方法去选择: click第一次后,出现下拉 ...

  5. python 3 continue 循环控制

  6. Unit5:广播

    静态广播 1.定义 public class TestBroadCast extends BroadcastReceiver { @Override public void onReceive(Con ...

  7. Spark Driver Program剖析

    SparkContext是通往Spark集群的唯一入口,是整个Application运行调度的核心. 一.Spark Driver Program Spark Driver Program(以下简称D ...

  8. Java基础语法(10)-面向对象之三大特征

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  9. RXJAVA之聚合操作

    concat 按顺序连接多个Observables.需要注意的是Observable.concat(a,b)等价于a.concatWith(b). startWith 在数据序列的开头增加一项数据.s ...

  10. 【域控日志分析篇】CVE-2020-1472-微软NetLogon权限提升-执行Exp后域控日志分析与事件ID抓取

    前言:漏洞复现篇见:https://www.cnblogs.com/huaflwr/p/13697044.html 本文承接上一篇,简单过滤NetLogon漏洞被利用后,域控上的安全及系统日志上可能需 ...