转载请注明来源:https://www.cnblogs.com/Sherlock-L/p/14933949.html

前言

事情是这样的,在风和日丽的一天,我如往常一样在服务器上敲下了sudo xxxx,然而,这个指令竟然被kill了。

sudo: Operation not permitted
Killed

思索10min无所得,遂求助运维同学,答曰:4755。

咦,4755?这熟悉的陌生人,《鸟哥的Linux私房菜》里就有介绍过耶。

正文开始。

一、SUID

1.SUID的限制与作用

SUID即Set UID,s标志出现在user位的x上。

  • SUID 权限仅对二进位程序(binary program)有效;(不能够用在 shell script 上面,因为shell script只是在运行一堆binary program)
  • 运行者对于该程序需要具有 x 的可运行权限;
  • 本权限仅在运行该程序的过程中有效 (run-time);
  • 运行者将具有该程序拥有者 (owner) 的权限。 (运行过程中暂时获得该程序拥有者的权限)
  • SUID对于目录无效

2.前言答案

关键就在于这个s,我的sudo会被kill掉,就是因为少了s:

leah@ubuntu:~$ ll /usr/bin/sudo
-rwsr-xr-x 1 root root 155008 Aug 27 2015 /usr/bin/sudo*

二、SGID

1.SGID作用在文件

SGID即Set GID,顾名思义,s标志出现在group的x上。

  • SGID 对二进位程序有用;
  • 程序运行者对于该程序来说,需具备 x 的权限;
  • 运行者在运行的过程中将会获得该程序群组的支持。

2.SGID作用在目录

  • 使用者若对于此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
  • 使用者在此目录下的有效群组(effective group)将会变成该目录的群组;
  • 用途:若使用者在此目录下具有 w 的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同。

三、SBIT

SBIT 目前只针对目录有效,作用:

  • 当使用者于於此目录具有 w, x 权限,亦即具有写入的权限时;
  • 当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件

    举例来说,/tmp的权限为drwxrwxrwt,任何人都可以在 /tmp 内新增、修改文件,但仅有该文件/目录创建者与 root 能够删除自己的目录或文件。

四、SUID/SGID/SBIT 权限配置

SUID、SGID和SBIT用数字表示分别为

  • 4:SUID
  • 2:SGID
  • 1:SBIT

到这里已经很清晰了,破解本次事件关键就是:

chmod 4755 /usr/bin/sudo

当然咯,这样也行:

chmod u+s /usr/bin/sudo

或者这样:

chmod u=rwxs /usr/bin/sudo

再来看个有趣的例子:

leah@ubuntu:~$ touch test.txt
leah@ubuntu:~$ ls -l test.txt
-rw-rw-r-- 1 leah leah 0 Jun 23 09:38 test.txt
leah@ubuntu:~$ chmod 7666 test.txt
leah@ubuntu:~$ ls -l test.txt
-rwSrwSrwT 1 leah leah 0 Jun 23 09:38 test.txt

发现了吗?大S和大T哦~ 原因很简单,user都没有x,其他人又怎么可能执行?所以,就是空啦!

转载请注明来源:https://www.cnblogs.com/Sherlock-L/p/14933949.html

最新文章

  1. atom配置web开发环境
  2. 10 DelayQueue 延时队列类——Live555源码阅读(一)基本组件类
  3. java SpringUtil获取bean
  4. 【Win10】UAP/UWP/通用 开发之 SplitView
  5. python基本数据结构-集合-方法
  6. jQuery 判断表单中多个 input text 中至少有一个不为空
  7. 键盘unicode值对照表
  8. 笔记13:File 类的一些操作
  9. Ruby中的Profiling工具
  10. 【转】android开发 dts、各种接口porting----不错
  11. 【Html 学习笔记】第三节——超链接
  12. c# 配置连接 mysql
  13. UILabel + 导入字体
  14. 游戏UI框架设计(五): 配置管理与应用
  15. VMware Workstation 12 Pro 之安装林耐斯StartOS X64系统
  16. 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能
  17. BZOJ 1998: [Hnoi2010]Fsk物品调度 [置换群 并查集]
  18. Hibernate工具类_抽取重复核心代码
  19. js在数组中查找是否存在某一个数值
  20. JavaScript基础回顾一(类型、值和变量)

热门文章

  1. (数据科学学习手札149)用matplotlib轻松绘制漂亮的表格
  2. 发布在IIS的apk或者ipa文件无法访问
  3. 1 .NET Core笔试题
  4. JZOJ 3252. 【GDOI三校联考】炸弹
  5. Vulhub 漏洞学习之:DNS
  6. C#本地时间转Unix时间
  7. 代码随想录算法训练营day12 | leetcode 239. 滑动窗口最大值 347.前 K 个高频元素
  8. Python连接Hadoop-impala方法
  9. PostGIS之几何创建函数
  10. SpringBoot 面试问答总结(VIP典藏版),最详细!全面!爆肝!