linux,centos,rhel7 中SUID,SGID ,Sticky Bit權限作用是什麼

SUID

Set  Uid

    當我我們使用 ls 看passwd與shadow的權限時,會發現shadow文件只有root用戶具有所有權限,其餘所有都沒喲任何權限,shadow文件是保存各個用戶密碼相關的數據,但是那麼試想,雖然passwd命令可以允許普通用戶執行,但是shadow確實不能被普通用戶寫入啊,當我們非root用戶是如何修個自己的密碼的?




    當我們用zkncn這個普通用戶執行passwd這個命令時,此時SUID權限就起作用啦,用於這個權限,普通用戶在執行這個命令時,就暫時取得了該程序所有者的權限,即root用戶的權限,當用就可以對shadow這個文件操作咯




SUID的基本作用及說明: 

    只對二進制可執行文件設置起作用更。對其他類型文件或目錄都是沒有作用的

    該權限只能在該可執行文件的執行過程中起作用。比如我們用zkuncn用戶使用可以執行passwd命令修改自己密碼,但用 cat 讀取 /etc/shadow 文件是沒有權限的

    執行的用戶需要對該可執行文件具有執行權限,即 x 權限。因爲有了 x 權限才能執行該程序

    該權限用在該程序所有者權限組中的 x 權限位置用 s 表示,由於該權限只有在具有 x 權限時纔有意思,所以 s 與 x 權限合併寫在 x 權限位置上,當是大寫的 S 時表示無效的SUID,例如用戶對該程序沒有 x 權限,卻設置了 s 權限


SGID

   在SUID是臨時取得程序所有者的權限,顧名思義 SGID,就是臨時取得該程序的所有組的權限,但是SGID可以對可執行二進制程序或者目錄都起作用,該權限在組 x 權限位置用 s 表示,同樣需要 x 權限,若沒有 x 權限,怎表示無效的 SGID 權限,用大寫 S 表示

   當對象是目錄是:

        若用戶進入具有SGID權限的目錄,則此時該用戶在此目錄下的羣組將變爲該目錄的羣組

        若該用戶能創建目錄及文件,那麼目錄和文件的羣組即是該目錄的羣


   例如:在第二行我們可以看出,testfile 文件的屬於 zkunc 用戶,羣組屬於 zkuncn 羣組,此時我用用戶 zkuncn1 在 testfile文件下創建一個hello的文件,再用 ls 看下,可以看出 hello 文件的羣組卻是 zkuncn ,因爲 testfile 目錄具有 SGID 權限,正常情況下 hello 的羣組應該是zkuncn1


若對象是可執行程序:

  具有 x 權限的二進制可執行程序

   執行的用戶在執行的過程中具有該程序羣組的權限


Sticty Bit

   該權限只對目錄有效,對文件沒有作用,該權限用 t 表示,若一個目錄設置了 t 權限,那麼各用戶可以在該目錄下創建和新增文件或目錄,但是各用戶只能刪除屬於自己用戶的文件或目錄,不能刪除別人的文件和目錄,即使該文件或目錄具有 777 的權限。同樣,t 權限在其他用戶 x 權限位置用 t 表示, t 權限也需要 x 權限,若沒有 x 權限,則表示無效,用大 T 表示。

     簡單的就是 tmp 目錄



    在 tmp 目錄中,我們用zkuncn用戶創建一個文件 zkuncndir, 此時切換到 zkuncn1 用戶,去刪除zkuncndir 文件夾,儘管這個文件夾的權限是 777 但是由於 t 這個權限,還是不能刪除的




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章