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. mysql 题目练习

    1 新建一个测试数据库: create database test1 charset utf8; 2 进入数据库 use test1; 3 新建一个sql 文件 ,将下面内容复制进sql 文件 /* ...

  2. clr via c#读书笔记四:call、callvirt

    1.嵌套类,就是定义在类中的类:嵌套类可以访问外部类的方法.属性.字段而不管访问修饰符的限制,但是外部类只能够访问修饰符为public.internal的嵌套类的字段.方法.属性: 2.CLR如何调用 ...

  3. L010小结后自考题

    . 查询2号分区的inode和block的数量和尺寸 . 在lcr文件夹下创建一个a文件夹,然后进入文件夹中,创建3个3层目录,5个1层目录,5个文件 . 滤出a文件夹下的所有一级目录(4种方法) . ...

  4. MVC、MVVM

    一.MVC 所谓的 MVC 是指: Model: 数据的拥有者,实现具体的业务逻辑. View: 具体的用户界面,如按钮.列表.图片. Controller: 负责将 View 中用户的动作传达给 M ...

  5. jdbc 连接各种数据库

    package com.fh.controller.ruitai.util; import java.sql.Connection; import java.sql.DriverManager; im ...

  6. hdu2112HDU Today(floyd+map数组对字符串的应用)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. hdu1517A Multiplication Game(巴什博弈变形)

    A Multiplication Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot ...

  8. 利用爬虫、SMTP和树莓派3B发送邮件(爬取墨迹天气预报信息)

    -----------------------------------------学无止境----------------------------------------- 前言:大家好,欢迎来到誉雪 ...

  9. 题解 CF191C 【Fools and Roads】

    树上差分半裸题 常规思路是进行三次DFS,然后常规运算即可 这里提供两次dfs的思路(wyz tql orz) 我们以样例2为例 我们考虑任意一条路径,令其起点为u终点为v,每走一次当前路径则v的访问 ...

  10. 【Linux 运维】linux系统查看版本信息

    查看linux系统版本信息: [root@kvm-host~]# cat /proc/version       (Linux查看当前操作系统版本信息)Linux version 3.10.0-514 ...