由Android的fastboot no permissions而引出的Linux特殊許可權管理之:SUID、SGID、SBIT

來源:互聯網
上載者:User

標籤:

前言

之所以會說到這幾個特殊許可權,是因為fastboot這個命令好像有點抽風,給人的感覺就是有時能用有時不能用,執行fastboot devices的錯誤提示

no permissions


為了找到問題的原因,就思考了一下。


這種問題一般主要發生在以下2種情境下:

1、複製並使用了新的fastboot可執行檔

2、改變了fastboot可執行檔的環境變數


為什麼以上2種情境會產生這樣的錯誤?

which fastbootll fastboot

執行這兩條命令之後就可見端倪,原來由於複製或者使用了別人複製的fastboot,導致fastboot所屬的使用者和群組發生了改變,從而讓SUID和SGID失效,因為原來fastboot所屬的使用者和群組都是root。

接下來我們就簡單說瞭解一下SUID和SGID的失效導致no permissions背後的知識點。

SUID

Set UID,它會出現在檔案擁有者許可權的執行位上,只對二進位程式有效,執行者對於程式需要有x許可權,在程式運行過程中,執行者擁有程式擁有者的許可權。

例如:普通使用者執行fastboot和passwd命令。

這裡再多說一句,很多Android上的root工具就是通過一些漏洞(比如緩衝區溢位等)來攻擊一些帶有SUID或SGID許可權,並且所屬的使用者或使用者組是root的二進位程式來臨時擷取root許可權,然後執行一段事先編譯好的惡意目標平台代碼來達到root的目的。

SGID

Set GID,它出現在檔案所屬組許可權的執行位上面,對於檔案和目錄都有效,具體作用如下:

1、對於檔案

對於二進位程式有用,程式執行者要有x許可權,執行者在執行過程中會獲得該程式使用者組的許可權(相當於臨時加入了程式的使用者組

2、對於目錄

使用者對此目錄有rx許可權可以進入目錄,使用者進入此目錄後,有效使用者組會變成該目錄的使用者組,若使用者在此目錄有wx許可權,則使用者建立的檔案的使用者組與該目錄使用者組相同。

SBITSticky BIT,它出現在其他使用者權限的執行位上, 只對目錄有效,當使用者對目錄擁有wx許可權時,使用者在該目錄建立的檔案或目錄,只有使用者自己和root才可以刪除。



一個小問題背後也會隱藏一些比較重要的知識點,善於發現和總結,總能有一些收穫。

最後,將此問題記錄下來,希望能夠幫到後續遇到類似問題的同學。


由Android的fastboot no permissions而引出的Linux特殊許可權管理之:SUID、SGID、SBIT

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.