添加SUID

chmod 4755 可执行文件名

或 chmod u+s 可执行文件名

删除SUID:

chmod 755 可执行文件名

或 chmod u-s 可执行文件名

  1. [root@localhost project]# ll
  2. 总用量 0
  3. -rw-rw----+ 1 root root 0 8 5 20:07 b
  4. [root@localhost project]# chmod u+s b
  5. [root@localhost project]# ll
  6. 总用量 0
  7. -rwSrw----+ 1 root root 0 8 5 20:07 b 注:大写S表示有问题,文件属主对文件无可执行权限。

危险的SetUID:若给vim设置SUID权限,则所有普通用户可通过vim修改所有配置文件。


SGID实例:

  1. [root@localhost ~]# ll /usr/bin/locate
  2. -rwx--s--x. 1 root slocate 40512 11 5 2016 /usr/bin/locate
  3. [root@localhost ~]# ll /var/lib/mlocate/mlocate.db
  4. -rw-r-----. 1 root slocate 834129 8 5 10:06 /var/lib/mlocate/mlocate.db

locate命令的执行过程是读取/var/lib/mlocate/mlocate.db文件,但普通用户对/var/lib/mlocate/mlocate.db无r权限,因为locate有SGID权限,所有普通用户在执行locate命令时会临时将自己所属组变为locate命令所有组,即slocate,而/var/lib/mlocate/mlocate.db文件的所有组也是slocate,所以普通用户执行locate时有权限读取/var/lib/mlocate/mlocate.db文件。

添加SGID权限:

chmod 2755 可执行文件名

或 chmod g+s 可执行文件名

对可执行文件属组必须要有执行权限才有效,不然SGID位会是大写S

chmod 2755 目录

或 chmod g+s 目录

取消SGID权限:

chmod 755 文件或目录

chmod g-s 文件或目录

演示SGID对目录的效果:

  1. [root@localhost ~]# mkdir /tmp/test
  2. [root@localhost ~]# ls /tmp
  3. test
  4. [root@localhost ~]# chmod g+s /tmp/test
  5. [root@localhost ~]# ll -d /tmp/test/
  6. drwxr-sr-x. 2 root root 6 8 5 21:32 /tmp/test/
  7. [root@localhost ~]# chmod 2777 /tmp/test/
  8. [root@localhost ~]# ll /tmp/test -d
  9. drwxrwsrwx. 2 root root 6 8 5 21:32 /tmp/test
  10. [root@localhost ~]# su - xiongjiawei
  11. 上一次登录:六 8 5 21:01:39 CST 2017pts/0
  12. [xiongjiawei@localhost ~]$ pwd
  13. /home/xiongjiawei
  14. [xiongjiawei@localhost ~]$ ls
  15. mytxt
  16. [xiongjiawei@localhost ~]$ touch aaa
  17. [xiongjiawei@localhost ~]$ ll
  18. 总用量 4
  19. -rw-rw-r--. 1 xiongjiawei xiongjiawei 0 8 5 21:39 aaa
  20. -rw-rw-r--. 1 xiongjiawei xiongjiawei 153 7 23 20:25 mytxt
  21. [xiongjiawei@localhost ~]$ cd /tmp/test/
  22. [xiongjiawei@localhost test]$ ll
  23. 总用量 0
  24. [xiongjiawei@localhost test]$ touch bbb
  25. [xiongjiawei@localhost test]$ ll
  26. 总用量 0
  27. -rw-rw-r--. 1 xiongjiawei root 0 8 5 21:39 bbb 注:此处即体现SGID的作用,普通用户对具有SGID权限目录有w权限时在此此目录下创建的文件属组非普通用户的属组,而是该目录的属组

针对文件的SetGID类似SUID,轻易不要随便设置,会给系统增加风险!


Sticky BIT

作用:普通用户对目录具有w权限时可删除该目录下所有文件,如此目录权限有StickyBIT权限则普通用户只能删除自己创建的文件。

[xiongjiawei@localhost test]$ ll -d /tmp
drwxrwxrwt. 8 root root 105 8月   5 21:39 /tmp

若一个目录对普通用户有w权限,则任用户可以删除此目录下文件,但若此目录有StickyBIT权限则普通用户只能删除自己创建的文件。

添加StickyBIT权限:

chmod 1755 目录

chmod o+t 目录

删除StickyBIT权限:

chmod 755 目录

chmod o-t 目录

只能root添加删除粘着位权限。

SUID、SGID、Sticky BIT的更多相关文章

  1. 关于SUID、SGID、Sticky

    SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...

  2. 特殊权限 SUID、SGID、Sticky

    摘录之----------QuintinX 一. 前提 本篇主要讲解SUID, SGID, Sticky三个权限的基本原理和应用. 为什么要使用特殊权限? 比如系统中假如有超过四类人然而每一类人都需要 ...

  3. 特殊权限位:suid、sgid、sticky

    linux系统特殊权限位 suid.sgid.stickysuid 使任意用户获得用文件属主相同的权限,sgid使用户获得与文件属组相同的权限(通过sgid获得的权限等同于同一用户组的权限) 表示方法 ...

  4. linux系统特殊权限位 suid、sgid、sticky

    linux系统特殊权限位 suid.sgid.stickysuid 使任意用户获得用文件属主相同的权限,sgid使用户获得与文件属组相同的权限(通过sgid获得的权限等同于同一用户组的权限) 表示方法 ...

  5. Linux学习历程——SUID、SGID、SBIT简介

    一.SUID.SGID.SBIT简介 SUID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属主身份来执行.SGID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件 ...

  6. 再次学习linux文件特殊权限:SUID、SGID、Sticy Bit

    以前对于文件管理的认识只限于UGO的管理,对于特殊权限的学习还是一知半解.重新学习了一遍,我自己理解的东东记录一下. 首先,列一下SUID.SGID.Sticy Bit所代表的权限数值.就好像rwx分 ...

  7. 【linux命令 】文件特殊权限(SUID、SGID、SBIT)

    chmod 2770 /home/admins,刚看到这个命令,有点不解,后边770分别表示用户,组,其他人,前面的2不知道代表的是什么意思.百度之后发现2是代表八进制数,也是一种权限,它的三个bit ...

  8. Linux特殊位SUID、SGID、SBIT

    Linux特殊位SUID.SGID.SBIT 前言 Linux中的文件权限一般有x.w.r,在某个情况下有需要用到s.t,即特殊位. 进程运行时能够访问哪些资源或文件,不取决于进程文件的属主属组,而是 ...

  9. 【转】特殊权限控制之SUID、SGID、Sticky

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://soysauce93.blog.51cto.com/7589461/1715583 ...

  10. Linux中文件的SUID、SGID、Sticky权限说明

    1.SUID 首先我们要了解,在Linux中启动一个程序或者启动一个进程是需要有用户的,一个文件的存在是要有用户和组的,一个进程启动后,它的属主取决于进程的发起者,比如 我用root用户启动了一个 c ...

随机推荐

  1. 如何完全根据官方下载包搭建hibernate框架

    好久没有用s2sh的框架了,最近业务需要又要拾起来.在搭框架时,发现之前都是复制配置文件,对具体的细节却很懵懂,所以要从新来一遍,也是一次新的学习. 我使用的版本是hibernate-release- ...

  2. Spring集成Quartz完成定时任务

    在JavaEE系统中,我们经常会用到定时任务,比如每天晚上凌晨之后跑批处理或者是每天某个时刻群发消息等等. 我们可以使用java.util.Timer结合java.util.TimerTask来去完成 ...

  3. Chrome的开发者工具(Chrome Developer Tools)

    Chrome的开发者工具(Chrome Developer Tools) 按F12 https://developer.chrome.com/devtools/index http://www.w3s ...

  4. 社群公会GangSDK:程序员入行AI领域需要哪些技能?

    作为一名Android开发工程师,身边总有些同行很焦虑,看着人工智能越来越火,总是担心Android要不行了,所以,我们需要转行么?Android还能走多久?其实,无论是对于Android还是iOS开 ...

  5. ServletFileUpload 图片上传

    <script type="text/javascript"> $(function () { $('#uploadSubmit').click(function () ...

  6. SpringMVC RequestMapping 详解

    SpringMVC RequestMapping 详解 RequestMapping这个注解在SpringMVC扮演着非常重要的角色,可以说是随处可见.它的知识点很简单.今天我们就一起学习Spring ...

  7. 2017湖湘杯Writeup

    RE部分 0x01 Re4newer 解题思路: Step1:die打开,发现有upx壳. Step2:脱壳,执行upx -d 文件名即可. Step3:IDA打开,shift+F12看字符串. 点进 ...

  8. [DFS遍历图]UVA10562 Undraw the Trees

    传送门: 1. UVA - 10562 2. Vjudge [看图写树]     将题目中给出的树改写为 括号表示法 即 (ROOT (SON1(...) (SON2(...)...(SONn(... ...

  9. PHP防止SQL注入和XSS攻击

    PHP防止SQL注入和XSS攻击PHP防范SQL注入是一个非常重要的安全手段.一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.说到网站安全,就不得不提到SQL注入( ...

  10. pyhton 关于 configparser 配置 模块 实践使用中碰到的坑

    今天做一个ATM的练习,想要用configparser模块,写一个配置文件,存放用户信息. 结果状况连连,叫苦不迭. 我用configparser模块,想要对配置文件,进行读.写.改.查 功能. 其中 ...