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. [Python3.X]python 实现斐波那契数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一 ...

  2. 相机-imu外参校准总结

    1. 研究背景及相关工作 1)研究背景 单目视觉惯性slam是一种旨在跟踪移动平台的增量运动并使用来自单个车载摄像头和imu传感器的测量结果同时构建周围环境地图的技术.视觉相机和惯性测量单元(imu) ...

  3. VINS(八)初始化

    首先通过imu预积分陀螺仪和视觉特征匹配分解Fundamental矩阵获取rotationMatrix之间的约束关系,联立方程组可以求得外参旋转矩阵: 接下来会检测当前frame_count是否达到W ...

  4. Ruby on Rails Tutorial 第2版 学习笔记

    Ruby on Rails Tutorial 第2版 在线阅读:http://railstutorial-china.org/ 英文版:http://ruby.railstutorial.org/ru ...

  5. 蓝牙入门知识-CC2541知识

    蓝牙是为了能够通信,想要通信就必须遵守一定的规则, Profile 就可以理解为相互约定的规则,因为每个协议栈demo 都会有一个Profile 与之对应, 我们这里的SimpleBLExxx 对应的 ...

  6. Oracle TDE的学习

    TDE的开启和关闭 设置wallet目录,在参数文件sqlnet.ora中,按照下面的格式加入信息 # Oracle Advanced Security Transparent Data Encryp ...

  7. ReadyAPI教程和示例(一)

    声明:如果你想转载,请标明本篇博客的链接,请多多尊重原创,谢谢! 本篇使用的 ReadyAPI版本是2.5.0 通过下图你可以快速浏览一下主要的ReadyAPI中SoapUI功能: ​ 一.创建一个功 ...

  8. JDBC中使用Properties类及配置文件的操作

    同时发布于:https://blog.csdn.net/Activity_Time/article/details/81149710 一.properties配置文件 开发中获得连接的4个参数(驱动. ...

  9. Bootstrap框架(组件)

    按钮组 通过按钮组容器把一组按钮放在同一行里.通过与按钮插件联合使用,可以设置为单选框或多选框的样式和行为. 按钮组中的工具提示和弹出框需要特别的设置 当为 .btn-group 中的元素应用工具提示 ...

  10. 微软的XML可视化编辑器:XML Notepad 2007

    最近项目需要定义xml协议格式,编写xml文件比较多,之前使用xml spy工具,但是不够轻量级. 微软提供的xml nodepad 2007很实用,希望能给大家提供帮助. 运行后的界面 下载地址:h ...