转载请注明来源: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

sudo:Operation not permitted事件的更多相关文章

  1. macOS: sudo : Operation not permitted

    通过查阅资料,了解到这个是之前引入的rootless机制.这让我从Linux换到Mac的用户很不习惯 https://developer.apple.com/videos/play/wwdc2015/ ...

  2. 终端mysql Operation not permitted错误解决方案

    前言 前段时间装mysql,就遇到了ln: /usr/bin/mysql: Operation not permitted的错误,网上好多方法都过时了,下边是我的解决方法 原因 这是因为苹果在OS X ...

  3. macosx 10.11 python pip install 出现错误OSError: [Errno 1] Operation not permitted:

    Exception: Traceback (most recent call last): File , in main status = self.run(options, args) File , ...

  4. Tomcat 在mac中Operation not permitted

    5.执行/Library/Tomcat/bin下的startup.sh,然后打开http://localhost:8080查看是否Tomcat已经启动,若要停止服务器就运行同目录下的shutdown. ...

  5. 安装Pod时提示ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod

    环境:OSX EI 10.11.1 昨天切换gem源后,招待pod安装没有任何问题,也可以正常用$ gem sources --add https://ruby.taobao.org/ --remov ...

  6. class-dump 复制到/usr/bin目录不可写,Operation not permitted 解决办法

    许多升级了OSX 10.11的朋友在配置class-dump的时候,会发现书上推荐的class-dump存放目录/usr/bin不再可写,如下所示: Operation not permitted 把 ...

  7. linux操作提示:“Can't open file for writing”或“operation not permitted”的解决的方法

    在linux上使用vi命令改动一个文件内容的时候,发现无法保存,每次写完使用":q!"命令能够正常退出可是使用":wq!"命令保存文件并退出时出现一下信息提示: ...

  8. Operation not permitted引发的惊魂72小时

    0.问题及描述 在测试产品的时候,莫名其妙发现了我们的主进程VPNd会出现以下的报错: 2013-07-18 13:05:13  www.1.com/192.168.200.220:65527 wri ...

  9. 修改文件的所有者失(chown: changing ownership of `uploads': Operation not permitted)

    在项目开发的时候,经常需要将文件上传到指定的目录下. 例如这次用thinkphp5的时候,需要在public目录下建立uploads目录用于存放上传的资源. 首先在命令窗口下输入: mkdir upl ...

  10. 安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题

    安装cocoa pods时, 在命令行中输入: 安装:sudo gem install cocoapods报Operation not permitted - /usr/bin/xcodeproj这个 ...

随机推荐

  1. Quartz.Net 官方教程 Tutorial 2/3(Listener 和 JobStore)

    Listener 调度任务的监听,当前版本支持添加调度,触发器和任务的监听,其中触发器和任务的监听支持通过监听名称进行添加(Add*ListenerMatcher方法) 监听不能对外抛出异常,需要内部 ...

  2. vue学习笔记(二) ---- vue实例的生命周期

    vue实例的生命周期 什么是生命周期:从Vue实例创建.运行.到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期! 生命周期钩子:就是生命周期事件的别名而已: 生命周期钩子 = 生命周期函 ...

  3. Django-request、django连接数据库、ORM

    1.静态文件配置 1.静态文件:不经常变化的文件,主要针对html文件(CSS文件.js文件.img文件.第三方框架文件). 2.django针对静态文件资源需要单独开始一个目录统一存放:static ...

  4. 线程、GIL、协程

    1.多进程实现TCP服务端并发 1.之前我们学习了一个服务端对应一个客户端的操作,但是我们无法实现一个服务端对应多个客户端的操作.因此我们需要在pycharm的右上角点击倒三角,选择Edit Conf ...

  5. 这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub

    一.在GitHub上创建一个远程仓库: 以上,就创建好了一个名为pythonStudy的仓库,现在先别把它关掉,先最小化 二.安装版本管理工具git:git属于无脑安装,可以更改安装路径 打开项目文件 ...

  6. xml基本学习

    概念:可拓展标记语言.可拓展即标签都是自定义的.标记语言即由标签构成的语言. 功能:存储数据: 配置文件 在网络中传输 语法 基本语法: xml文件后缀名为.xml xml第一行必须定义为文档声明 x ...

  7. P20_事件绑定

    事件绑定 什么是事件 事件是渲染层到逻辑层的通讯方式.通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理. 小程序中常用的事件 事件对象的属性列表 当事件回调触发的时候,会收到一个事件对 ...

  8. CSS动画,盒子爬坡源码

    html: <!DOCTYPE html> <html lang="en"> <head>     <meta charset=" ...

  9. JZOJ 1121. Fix

    解析 考场时想多了,其实根本不用分阶段 一维状压 \(DP\) 就行了 可我没想清楚,加了个第几次去稳固一个点的阶段 然后时间就炸了!!! \(Code\) #include<cstdio> ...

  10. 我用ChatGPT做直播技术选型,卷死了同事

    摘要 近两年即时通讯/直播产品炙手可热,市场上针对ToB的产品日益增多,企业该如何去选型呢?本文分享了笔者对于直播产品的思考,将从直播SDK实例功能特性.常见业务场景.注意事项及最佳实践等方面介绍如何 ...