SUID:

     只对二进制程序有效
     执行者对于程序需要有x权限
     在程序运行过程中,执行者拥有程序拥有者的权限
     例如:
     普通用户执行passwd命令。
     首先查看passwd命令的绝对路径:
     
     查看passwd命令权限:
     
     passwd的拥有者是root,且拥有者权限里面本应是x的那一列显示的是s,这说明这个命令具有SUID权限。
     同时发现普通用户没有w权限,所以按理来说普通用户是不能执行这个命令的,因为这个命令修改了密码肯定是要写文件的。

进一步分析,实际上passwd这个命令会操作/etc/shadow这个文件,因为密码都是放在这里,查看密码文件权限:

     
     发现权限是000,(注意:root用户对所有文件都是有rw权限的,对所有目录都是有rwx权限的),这意味着普通用户确实不能独读或写这个文件。
     不过因为passwd命令具有SUID权限,所以普通用户执行这个命令时,当系统生成对应的进程后,这个进程就拥有了/usr/bin/passwd文件拥有者root的权限。

     上面的操作在要输入密码时按CTRL+Z,回车。
     查看进程树:
     
     可以发现确实passwd的权限不是pstar而是root!

SGID:

     对于文件:
          SGID对于二进制程序有用
          程序执行着要有x权限
          执行者在执行过程中会获得改程序用户组的权限(相当于临时加入了程序的用户组)
          例如:
          普通用户使用locate命令。(直接看图)
          

          发现用户组权限中应该出现x的位置显示的s,表示这个命令具有SGID权限。而普通用户只有x权限而没有rw权限。
          locate这个命令,实际上会去访问/var/lib/mlocate/mlocate.db这个文件。
          

          这个文件对于普通用户没有任何权限。所以理论上普通用户执行locate命令是不行的。
          不过因为locate命令有SGID权限,所以运行locate生成进程时,这个进程会得到locate命令的用户组权限,相当于pstar这个用户被临时加入了用户组slocate。
          于是就对mlocate.db这个文件有了r权限,可以访问了!
     对于目录:
          用户对此目录有rx权限可以进入目录
          用户进入此目录后,有效用户组会变成该目录的用户组
          若用户在此目录有w权限,则用户创建的文件用户组与该目录用户组相同
          例如:
          一个团队想在linux某个目录下协同工作来做一个项目,那么每个团队成员都得对这个目录下的所有文件具有rwx权限。
          于是我们首先新建一个用户组,再新建几个账号,每个账号的用户组都加入刚才新建的那个用户组。
          再新建工作目录,权限设为770,把目录的用户组加上上一步新建的用户组。
          到这里为止,我们思考下会有什么问题?
          现在账号A新建一个文件,新建文件的拥有者和用户组都会是A!重要的是其他用户都无法访问这个文件!
          所以我们需要给这个目录加入SGID权限,之后任意一个用户创建的文件,文件用户组都会是这个目录的用户组。万事OK!

SBIT:

     只针对目录有效
     当用户对目录拥有wx权限时,用户在该目录创建的文件或目录,只有自己与root才可以删除。


设置和查看SUID/SGID/SBIT权限的方法:

     SUID是4   SGID是2    SBIT是1
     chmod 4755 filename
     第一个7代表的就是这三个特殊命令,后面的755是普通权限。上面的命令把filename这个文件加入了SUID权限。
     查看特殊权限的方法就是普通的ls命令:
          SUID会在所属用户权限本应是x的地方显示s
          SGID会在所属用户组权限本应是x的地方显示s
          SBIT在其它用户权限本应是x的地方显示t
     如果希望查找系统中所有具有特殊权限的文件,则:
     find / -perm +7000

Linux特殊权限:SUID、SGID、SBIT的更多相关文章

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

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

  2. CentOS 文件特殊权限SUID,SGID,SBIT

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

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

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

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

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

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

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

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

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

  7. 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   ...

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

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

  9. SUID, SGID, SBIT

    基本上SUID有这样的限制与功能: SUID权限仅对二进位程序(binaryprogram)有效,不能用在shellscript上面: 运行者对於该程序需要具有x的可运行权限: 本权限仅在运行该程序的 ...

  10. suid sgid sbit chattr lsattr

    suid 一般用于二进制可执行文件,suid代表当用户执行此二进制文件时,暂时具有此文件所有者的权限 chmod 4xxx binfile sgid 一般用于目录,sgid代表当其他用户在此目录下创建 ...

随机推荐

  1. 搞了一个独立博客,请各位光临pingworld.cn

    嘿嘿,每次在一个大网站上建立自己的博客后总是没有动力持续更新下去,回想其原因很大是因为没有一个自己的地盘,懒得维护!还有一个原因就是自己也没有什么干货值得跟大家分享. 随着工作的时日见长,有了各种各样 ...

  2. android DatePickerDialog theme

    网上搜索了下没有找到DatePickerDialog的各种 Theme 的样例.我就一个一个试了下,传上图片 DatePickerDiaolog有两个构造函数分别是: DatePickerDialog ...

  3. Oracle EBS-SQL (BOM-2):检查期间Bom的更改记录数.sql

    Select MSI1.Segment1          上层编码,       MSI1.Description           上层描述,       MSI2.Segment1       ...

  4. javascript数组顺序-----1冒泡的另一种比较好理解的写法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. [置顶] 请听一个故事------>你真的认为iPhone只是一部手机?苹果惊天秘密!!

    在网上看到的一篇小说,感觉有点意思,转载过来大家一起围观下,作者很幽默很风趣. 导读:iPhone的隐藏功能!Jobs的军方身份!图灵服毒自杀的传奇故事!中兴华为的神秘背景! 你真的认为iPhone只 ...

  6. ListView分割线

    在开发中遇到需要ListView 中每一个条目后面都有个分隔线,但是总是发现最后一个条目后面没有分隔符,后来查到原因,是因为ListView的layout_height=“wrap_content” ...

  7. 让 collabtive-11 支持中文

    collabtive, 不错的项目管理工具, 将在新项目中使用之; 但在默认安装 collabtive-11 之后 发现在里面输入中文后会出错, 网上找不了少资料但对 11这版本的中文支持的修改不起不 ...

  8. 智能家居项目(2):项目project框架的搭建

    项目管理器: Linux中的项目管理器"make"有些类似于windows中的Visual C++里的"project",它是一种控制编译或者反复编译软件的工具 ...

  9. 深入理解Linux网络技术内幕——中断与网络驱动程序

    接收到帧时通知驱动程序     在网络环境中.设备(网卡)接收到一个数据帧时,须要通知驱动程序进行处理. 有一下几种通知机制: 轮询:     内核不断检查设备是否有话要说.(比較耗资源,但在一些情况 ...

  10. MATLAB中为控件(uicontrol)绑定Callback函数(回调函数)

    笔者走了许多弯路,终于找到这个方法,分享给大家. 'callback',@(~,~)colormapeditor(h) 如果版本老不支持“~”这种写法,那就改成: 'callback',@(x,y)c ...