【命令解析】特殊權限SUID SGID SBIT

2021-12-28 思科CCIE訓練營

drwxrwxrwt. 24 root root 4096 5月  16 19:30 /tmp-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

我們可以看到 passwd 文件的權限是 -rwsr-xr-x ;當 s 這個標示出現在文件擁有者的 x 權限上時,就被成為 Set UID ,簡稱 SUID 的特殊權限。它的限制與功能:

SUID 權限僅對二進位程序有效

執行者對於該程序具有 x 的可執行權限

本權限僅在執行該程序的過程中有效

執行者將具有該程序擁有者的權限(重點)

舉例: passwd 命令擁有者是 root ,,passwd 命令會修改 /etc/shadow 這個文件,而這個文件的權限為 . 1 root root 2560 5月 6 20:37 /etc/shadow ,雖然任何人沒有讀和修改的權限,但是 root 是可以修改,因為 root 是可以修改系統中任意的文件,不受權限控制。普通用戶可以使用 passwd 修改自己的密碼,但是修改密碼就必須要去修改 /etc/shadow 文件,但普通用戶又沒有修改這個文件的權限,那是不是代表用戶就用不了 passwd 這個命令了嗎?當然不是。SUID 就是處理此問題創造的;當用戶執行了帶有 SUID 的二進位文件命令時,就會臨時具有該文件擁有者的權限,在程序執行的過程中,攜帶著文件擁有者的權限來執行命令,也就解決了上面所說的問題。

即普通用戶使用 passwd 修改自己密碼,passwd 修改 /etc/shadow 文件時,擁有的是 root 用戶的權限,也就可以修改 /etc/shadow 文件了。

僅可用在二進位程序上,不能夠用在 shell 腳本上當 s 標示在文件擁有者 x 項為 SUID,那 s 在用戶組的 x 時則稱為 Set。GID(SGID)與 SUID 不同的是, SGID 可以針對文件或目錄來設置.如果對文件來說 SGID 有如下的功能:

SGID 僅對二進位程序有用

程序執行者對於該程序來說,需具備 x 的權限

執行者在執行的過程中將會獲得該程序用戶組的權限

舉例: /usr/bin/locate 命令會去讀 -rw-r. 1 root slocate 2875836 5月 16 03:32 /var/lib/mlocate/mlocate.db 這個文件,如果我們使用普通帳號執行 locate 時,那普通用戶將會取得 slocate 用戶組的權限,因此就能夠去讀取 mlocate.db。當 SGID 作用在一個目錄上,它將具有如下功能:

用戶若對於此目錄具有 r 與 w 的權限時,該用戶能夠進入此目錄

用戶在此目錄下的有效用戶組將會變成該目錄的用戶組

用途: 若用戶在此目錄下具有 w 的權限(創建文件),則該用戶所建立的新文件,該文件的用戶組與此目錄的用戶組相同

對於一個學習小組有一個共享目錄的情況下如果不設置 SGID,那麼每個人在該共享目錄下創建的文件其他人都不能修改(除非修改了 umask)使用起來很不方便

Sticky Bit (SBIT) 目前只針對目錄有效,對於文件已經沒有效果了,SBIT 對於目錄的作用是:

當一個目錄設置了 SBIT 時一個普通用戶創建的文件哪怕權限是 -rw-rw-rw,其他用戶也無法刪除,更名,移動等操作僅可自己和 root 刪除,更名,移動

chmod 是修改權限的命令,我們當然也是使用 chmod 來設置 SUID,SGID, SBIT了。
假設要將一個文件權限修改文 -rwsr-xr-x 時由於 s 在用戶權限中,所以是 SUID因此在原先的 755 之前還要加上 4也就是 chmod 4755 filename 來設置和設置普通的權限一樣如果要設置 SUID 又要設置 SGID 則是 chmod 6755 filename以此類推


鑑於篇幅有限,更多詳細課程大綱/知識體系/實體書籍/網工必備工具包等請掃碼加群獲取!

相關焦點

  • 理解 Linux 特殊權限 SUID,SGID,SBIT
    我們一般會再次把它們縮寫為 suid 和 sgid。它們是控制文件訪問的權限標誌(flag),它們分別允許用戶以可執行文件的 owner 或 owner group 的權限運行可執行文件。說明:本文的演示環境為 Ubuntu 16.04。
  • Linux 系統權限的介紹
    對於系統管理員來說,控制用戶對文件訪問的系統權限管理是基本技能,今天小編就來講解下,Linux系統對於系統權限管理的操作。1、chown 命令chown命令是用於更改文件的用戶和組的所有權。要將「執行」位添加到所有權權限集中,操作命令:chmod u+x foo_file要從組成員中刪除「讀取」、「寫入」和「執行」,操作命令:chmod g-rwx foo_file要將所有其他用戶的所有權設置為「讀取」和「寫入」,操作命令:chmod o=rw3、設置用戶 ID(suid)當在文件上設置
  • Linux文件系統的特殊權限之SUID
    除了這三種權限之外, 還有哪些特殊權限呢?Linux下的另外三種特殊權限, 分別是SUID, SGID, SBIT權限。 這裡重點介紹SUID權限。 suid:set uid 權限,任何一個用戶運行一個帶此權限的命令時,不是以此用戶的身份啟動,而是以文件自身的屬主訪問。
  • Linux權限管理之chmod
    包括 SET位權限(suid,sgid)和粘滯位權限(sticky)。SET位權限:suid/sgid是為了使「沒有取得特權用戶要完成一項必須要有特權才可以執行的任務」而產生的。一般用於給可執行的程序或腳本文件進行設置,其中SUID表示對屬主用戶增加SET位權限,SGID表示對屬組內用戶增加SET位權限。
  • 每天學一個 Linux 命令(17):chmod
    昨日推薦:每天學一個 Linux 命令(16):mkdir命令簡介chmod 命令用來變更文件或目錄的權限。文件或目錄權限有讀取、寫入、執行這3種,另外還有3種特殊權限。Linux系統除了正常的讀寫操作權限外,還有Linux特殊權限。
  • 全面介紹 Linux 權限 | Linux 中國
    了解 Linux 權限以及如何控制哪些用戶可以訪問文件是系統管理的一項基本技能。本文將介紹標準 Linux 文件系統權限,並進一步研究特殊權限,以及使用 umask 來解釋默認權限作為文章的結束。理解 ls 命令的輸出在討論如何修改權限之前,我們需要知道如何查看權限。通過 ls 命令的長列表參數(-l)為我們提供了有關文件的許多信息。
  • 每天十分鐘-學透linux--(兩個特殊權限 SUID SGID)
    我們稱有該權限位的可執行文件為具有SUID 特殊權限的可執行文件,所具有的功能是,只要用戶對設有 SUID 的文件有執行權限,那麼當用戶執行此文件時,會以文件所有者的身份去執行此文件,一旦文件執行結束,身份的切換也隨之消失。
  • linux基礎命令(文件操作/文件權限)
    文件有基本的讀寫執行權限,當不滿足我們對安全、快捷等工作的需求,便有了SUID和SGID及SBIT的特殊權限機制。SUIDSUID可讓執行者臨時擁有屬主的權限,SUID只對擁有執行權限的二進位文件有效設置SUIDchmod u+s 文件chmod 4xxx 文件註:4000表示s位,在屬主的執行x位置顯示s(S)表示設置suid,設置SUID有危險,如對vim設置了SUID則其他人可能亂改導致問題,請慎用SUIDchmod
  • 對Linux—suid提權的一些總結
    需要這種特殊權限的場景在Linux下很常見。已知的可以用來提權的Linux可執行文件有:CopyNmap、Vim、find、Bash、More、Less、Nano、cp比如常用的ping命令。ping需要發送ICMP報文,而這個操作需要發送Raw Socket。
  • 【Linux基礎】09 權限管理-文件權限
    目錄一 文件權限管理之基本權限1.3 權限對文件or目錄的意義二 文件權限管理之特殊權限2.1 SUID2.2 SGID2.3 SBIT三 文件權限管理之umask                ✦ ✦ ✦ ✦ ✦ ✦
  • Linux下利用SUID提權
    SUID是Linux的一種權限機制,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。如果擁有SUID權限,那麼就可以利用系統中的二進位文件和工具來進行root提權。已知的可用來提權的linux可行性的文件列表如下:NmapVimfindBashMoreLessNanocp以下命令可以發現系統上運行的所有SUID可執行文件。具體來說,命令將嘗試查找具有root權限的SUID的文件。
  • Linux系統利用可執行文件的Capability實現權限提升
    libcap提供了getcap和setcap兩個命令來分別查看和設置文件的capabilities,同時還提供了capsh來查看當前shell進程的capabilities。libcap-ng更易於使用,使用同一個命令filecap來查看和設置capabilities。
  • Linux用戶和權限管理看了你就會用啦
    權限超級用戶root具有一切權限,無需特殊說明2.1管理Linux權限的常用命令例子:除了上面所說的權限之外,Linux還提供了三種特殊的權限:它們是這樣表示的:例如:drwxrwxrwt 5 root root  4096   06-18 01:01 /
  • 老司機教你如何提升權限
    在各大論壇和大佬們的博客尋找權限提升的姿勢固有了想對提權姿勢進行一次系統整理的打算本篇文章是對權限提升方法的總結,記錄自己學習和復現的過程。利用它,你可以配置某些命令或者腳本,讓它們在某個設定的時間內周期性地運行。提權前提定時任務以root或高權限用戶運行現有較低權限用戶擁有對該定時任務文件的寫權限復現準備
  • 用戶權限相關命令
    本文轉載自【微信公眾號:機器學習算法與Python精研 ,ID:AITop100】,經微信公眾號授權轉載,如需轉載原文作者聯繫目標用戶 和 權限 的基本概念修改權限 終端命令01.文件/目錄 的擁有者通常都是當前用戶組,在 Linux 中,很多時候,會出現組名和用戶名相同的情況,後續會講大小時間名稱1.4 chmod簡單使用(重要)chmod 可以修改 用戶/組 對 文件/目錄 的權限命令格式如下:chmod +/-rwx 文件名|目錄名提示:以上方式會一次性修改 擁有者/ 組 權限,有關 chmod 的高級用法
  • Linux修改權限命令chmod用法示例
    在Linux/Unix系統中,文件和目錄的可訪問性是由文件所有權和權限決定的。在上一篇文章中,我們了解了如何使用chown命令管理文件和目錄的所有權。在本教程中,我們將介紹chmod命令。chmod命令(change mode的縮寫)用於管理文件和目錄權限,並確定誰可以訪問它們。現在讓我們深入了解文件和目錄權限的本質,以及如何修改它們。
  • Linux 修改權限命令 chmod 用法示例
    在Linux/Unix系統中,文件和目錄的可訪問性是由文件所有權和權限決定的。在上一篇文章中,我們了解了如何使用chown命令管理文件和目錄的所有權。在本教程中,我們將介紹chmod命令。chmod命令(change mode的縮寫)用於管理文件和目錄權限,並確定誰可以訪問它們。現在讓我們深入了解文件和目錄權限的本質,以及如何修改它們。
  • Proftpd的命令權限配置
    【IT168 伺服器學院】1、可以上傳   2、可以覆蓋   3、不能:改名、刪除、修改屬性   4、可以斷點續傳   命令如下:     <Directory /home/www/honestqiao/ftp
  • 常用的更改Linux系統文件權限的命令
    大家好,小編又來啦,今天說一下更改文件權限的常用命令,Linux系統下,無論是選擇國內伺服器,還是租用RAKsmart等美國伺服器,如果安裝的是Linux作業系統的話,那麼咱們可能都需要與常見的Linux命令打交道。