sudo:Operation not permitted事件


轉載請注明來源: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM