Linux之又愛又恨的SetUID權限詳解

>>>Linux教程目錄<<<

權限管理-2.1SetUID

寫在前面:自己寫完檢查可能會有所紕漏,讀者們如若發現哪裏有錯誤,可在下方留言或私信我,我會第一時間改正

1. SetUID的功能

  • 只有可執行的二進制程序才能設定 SUID 權限(普通文件與目錄設定沒有意義)
  • 命令執行者要對該程序擁有 x(執行)權限
  • 命令執行者在執行該程序時獲得該程序文件屬主的身份
  • SetUID 權限只有在該程序執行的過程中有效,也就是說身份改變只在程序執行過程中有效

2. 示例

  • passwd 命令擁有 SetUID 權限,所以普通用戶可以更改自己的密碼
    • 我們通過 ll(ls -l 的縮寫)命令查看 passwd 命令文件
    • ll /usr/bin/passwd
    • 顯示如下:
    • -rwsr-xr-x 1 root root 25980 4月 21 2020 /usr/bin/passwd
    • 可以看出所屬組的權限中有一個“s”,這即代表擁有SetUID權限
  • 而 cat 命令沒有 SetUID權限,所以普通用戶不能通過 cat 查看 /etc/shadow 文件的內容
    • 我們查看 cat 命令文件
    • 顯示如下:
    • -rwxr-xr-x 1 root root 47976 4月 21 2020 /bin/cat
    • 可以看出沒有權限“s”,這即代表不擁有SetUID權限

在這裏插入圖片描述

3. 設定SetUID的方法

  • chmod 4755 [文件名]
  • 或 chmod u+s [文件名]
  • 數字 4 即代表了SUID 權限

4. 取消SetUID的方法

  • chmod 755 [文件名]
  • 或 chmod u-s [文件名]

5. 危險的SetUID

  • 關鍵目錄應嚴格控制寫權限,比如“/”,“/usr”等
  • 用戶的密碼設置要嚴格遵守密碼的三原則
  • 對系統中默認應該具有 SetUID 權限的文件作以列表,定時檢查有沒有這之外的文件被設置了 SUID 權限
  • 注:如果 vim 有了 SUID 權限,那麼普通用戶將可以使用 vim 修改任何文件

寫在後面:希望這些講解對你有所幫助,希望大家多多點贊和關注,你們的支持是我最大的動力(๑>؂<๑)

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