1、SUID ,是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)。

(1)SUID权限仅对二进制程序有效;
(2)本权限仅在执行该程序的过程中有效;
(3)执行者将具有该程序所有者的权限。

场景1:在Linux中,所有账号的密码记录在/etc/shadow这个文件中,并且只有root可以读和强制写入这个文件。那么,如果另一个账号需要修改自己的密码,就需要访问/etc/shadow这个文件,但是只有root能访问/etc/shadow这个文件?但是其他用户可以通过passwd命令修改/etc/shadow这个文件内的密码的,这就是SUID的功能。

[es@bigdata-senior01 ~]$ ll /etc/shadow
---------- 1 root root 2302 1月 11 14:04 /etc/shadow [es@bigdata-senior01 ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd passwd的所有者x位值是s,说明是SUID权限,普通用户在使用passwd命令的过程中,可以获得passwd命令所有者的权限,即root权限,仅限passwd命令执行过程。

2、SGID,用户组特殊权限。

2.1 当s标志出现在文件所有者的x权限时称为SUID,那么s出现在用户组的x权限时称为SGID。(U表示user,G表示group)。SGID有如下功能:

(1)SGID对二进制程序有用;
(2)程序执行者对该程序需具备x权限;
(3)执行者在执行过程中会获得该程序用户组的支持。

场景1:/usr/bin/locate这个程序可以去查询/var/lib/mlocate/mlocate.db这个文件的内容

[es@bigdata-senior01 ~]$ ll /usr/bin/locate
-rwx--s--x 1 root slocate 40520 4月 11 2018 /usr/bin/locate [es@bigdata-senior01 ~]$ sudo ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root slocate 3522235 1月 11 10:31 /var/lib/mlocate/mlocate.db locate命令在用户组的x位上是s权限,mlocate.db在用户组上是读权限,所以es用户通过locate命令获取了slocate组的临时权限,即读取权,
那么es用户就可以正常读取mlocate.db的数据来查找文件。

2.2 SGID也可以用目录上。当一个目录设置了SGID权限后,它具有如下功能:

(1)用户若对此目录具有r和x权限,该用户能够进入该目录;
(2)用户在此目录下的有效用户组将变成该目录的用户组;
(3)若用户在此目录下拥有w权限,则用户所创建的新文件的用户组与该目录的用户组相同。

场景2:需要在一个部门内设置共享目录,让部门内的所有人员都能够读取目录中的内容,那么就可以创建部门共享目录后,在该目录上设置 SGID 特殊权限位。

这样,部门内的任何人员在里面创建的任何文件都会归属于该目录的所属组,而不再是自己的基本用户组。

[es@bigdata-senior01 tmp]$ mkdir myshare

[es@bigdata-senior01 tmp]$ ll myshare -d
drwxrwxr-x 2 es es 6 1月 11 16:14 myshare [es@bigdata-senior01 tmp]$ chmod -R 777 myshare
[es@bigdata-senior01 tmp]$ ll myshare -d
drwxrwxrwx 2 es es 6 1月 11 16:14 myshare [es@bigdata-senior01 tmp]$ chmod -R g+s myshare
[es@bigdata-senior01 tmp]$ ll myshare -d
drwxrwsrwx 2 es es 6 1月 11 16:14 myshare [es@bigdata-senior01 tmp]$ cd myshare
[es@bigdata-senior01 myshare]$ ls
[es@bigdata-senior01 myshare]$ su
密码:
[root@bigdata-senior01 myshare]# touch 1.txt
[root@bigdata-senior01 myshare]# ll
总用量 0
-rw-r--r-- 1 root es 0 1月 11 16:18 1.txt
[root@bigdata-senior01 myshare]# su xu.dm
[xu.dm@bigdata-senior01 myshare]$ touch 2.txt
[xu.dm@bigdata-senior01 myshare]$ ll
总用量 0
-rw-r--r-- 1 root es 0 1月 11 16:18 1.txt
-rw-rw-r-- 1 xu.dm es 0 1月 11 16:18 2.txt 可以看到新建的文件用户组都是es组

3、SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件,只对目录有效。

(1)当用户对此目录具有w和x权限时,即具有写入权限时;
(2)当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。

场景:共享目录里,只能删除自己创建或上传的文件,除了root其他人不能删除

[es@bigdata-senior01 tmp]$ chmod o+t myshare
[es@bigdata-senior01 tmp]$ ll myshare -d
drwxrwsrwt 2 es es 32 1月 11 16:18 myshare [xu.dm@bigdata-senior01 myshare]$ rm 1.txt
rm:是否删除有写保护的普通空文件 "1.txt"?y
rm: 无法删除"1.txt": 不允许的操作 rm:是否删除有写保护的普通空文件 "1.txt"?y
[es@bigdata-senior01 myshare]$ ll
总用量 0 目录的所有者es,可以删除被保护的文件,其他用户(非root)不能删除。

4、关于SUID,SGID,SBIT权限设置

和rwx的421类似,suid,sgid,sbit也是421
SUID->4
SGID->2
SBIT->1

假设要将一个文件权限修改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID,因此,原先的755前面还要加上4,也就是4755,所以,
用命令chmod 4755 filename 设置就可以了。如果文件同时具备SUID和SGID,则权限变成4+2=6,即chmod 6755 filename。

此外,还可能出现S和T的情况。
s和t是替代x这个权限的,但是,如果它本身没有x这个权限,修改为s或t时就会变成大S或大T。

例如:
执行chmod 7666 filename。 因为666表示“-rw-rw-rw”,均没有x权限,所以最后变成“-rwSrwSrwT”。

另外也可以使用chmod u+s filename ,chmod g+s filename ,chmod o+t filename的方式来添加权限。

CentOS 文件特殊权限SUID,SGID,SBIT的更多相关文章

  1. Linux 文件特殊权限 SUID SGID SBIT

    文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下 1 SetUID 当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd, [root@or ...

  2. Linux 特殊权限 SUID,SGID,SBIT

    setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写.我们一般会再次把它们缩写为 suid 和 ...

  3. chmod 4777? 文件特殊权限 SUID SGID StickyBit

    故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...

  4. 【Linux】文件特殊权限 SUID/SGID/Sticky Bit

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

  5. linux 文件三大特殊权限(SUID SGID SBIT)

    SGID(这个应该是文件共享里面最常用权限管理手段) 作用于目录或可执行程序,作用于目录代表在此目录创建的文件或目录,默认的属组继承此目录的属组.例如 我这个testgroup 没有设置SGID .我 ...

  6. centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课

    centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln   ...

  7. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  8. 文件的特殊权限(SUID,SGID,SBIT)

    文件的一般权限:r w x  对应 421  文件的特殊权限:SUID SGID SBIT对应 421  文件的隐藏权限:chattr设置隐藏权限,lsattr查看文件的隐藏权限. 文件访问控制列表: ...

  9. Linux之特殊权限(SUID/SGID/SBIT)

    特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID.那 ...

随机推荐

  1. 【LG4735】最大异或和

    [LG4735]最大异或和 题意 洛谷 题解 维护一个前缀异或和\(S_i\) 对于一个询问操作\(l\).\(r\).\(x\) 就是等价于求一个位置\(p\)(\(l\leq p \leq r)\ ...

  2. core 中ef 连接sql server数据库 在类库中 自动生成 model

    首先 介绍 Scaffold-DbContext "Server=.;database=sdd;User Id=sa;Password=123456;" Microsoft.Ent ...

  3. ORB-SLAM(十二)优化

    ORB-SLAM中优化使用g2o库,先复习一下g2o的用法,上类图 其中SparseOptimizer就是我们需要维护的优化求解器,他是一个优化图,也是一个超图(包含若干顶点和一元二元多元边),怎样定 ...

  4. 深入解析UUID及其应用(转载)

    UUID 编辑 UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Founda ...

  5. APP性能测试工具-GT(随身调)

    GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment).利用GT,仅凭一部手机,无需连接电脑,您即可对AP ...

  6. JavaScript 作用域链范例

    函数在执行的过程中,先从自己内部找变量 如果找不到,再从创建当前函数所在的作用域去找,以此往上 注意找的是变量的当前状态 范例 例1 var a=1 function fn1() { function ...

  7. Jedis 与 MySQL的连接线程安全问题

    Jedis的连接是非线程安全的 下面是set命令的执行过程,简单分为两个过程,客户端向服务端发送数据,服务端向客户端返回数据,从下面的代码来看:从建立连接到执行命令是没有进行任何并发同步的控制 pub ...

  8. tomcat下载、安装

    下载 官网地址:https://tomcat.apache.org/download-80.cgi 安装 直接安装即可.安装完毕后Tomcat的目录结构如下: bin:脚本目录 ​ 启动脚本:star ...

  9. Machine Learning笔记整理 ------ (五)决策树、随机森林

    1. 决策树 一般的,一棵决策树包含一个根结点.若干内部结点和若干叶子结点,叶子节点对应决策结果,其他每个结点对应一个属性测试,每个结点包含的样本集合根据属性测试结果被划分到子结点中,而根结点包含样本 ...

  10. 使用truffle测试部署合约

    truffle console let contract; contract=BloggerCoin.deployed().then(instance=>contract=instanc e);