Permissions

GID 是什麼意思?

  • June 7, 2016

GID 實際上是什麼意思?

我用Google搜尋了它,這就是linux.about.com所說的:

程序的組標識號。有效的組號在文件/etc/group的 GID 欄位中給出/etc/passwd。當一個程序啟動時,它的 GID 被設置為其父程序的 GID。

  • 但是,這是什麼意思?

我對我的文件夾的權限目前在0755

我知道如果我為所有者設置 UID,它將是4755

如果我設置組的 GID,它將是2755

如果我為其他人設置粘性位,它將是1755

  • 設置這些權限甚至重要嗎?

類 UNIX 系統中的每個程序,就像每個文件一樣,都有一個所有者(使用者,無論是真實使用者還是系統“偽使用者”,例如daemonbinman等)和組所有者。使用者文件的組所有者通常是該使用者的主要組,並且以類似的方式,您啟動的任何程序通常由您的使用者 ID 和主要組 ID 所有。

但是,有時需要提升權限才能執行某些命令,但不希望提供完整的管理權限。例如,該passwd命令需要訪問系統的影子密碼文件,以便更新您的密碼。顯然,你不想給每個使用者root權限,只是為了讓他們可以重置密碼——這無疑會導致混亂!相反,需要有另一種方法來臨時授予使用者提升的權限以執行某些任務。這就是 SETUID 和 SETGID 位的用途。這是一種告訴核心在標記命令執行期間臨時提高使用者權限的方法。SETUID 二進製文件將以執行檔所有者的權限執行(通常root),並且將使用執行檔的組所有者的組權限執行 SETGID 二進製文件。對於passwd屬於rootSETUID的命令,它允許普通使用者以受控和可預測的方式通過以root權限執行來直接影響密碼文件的內容。SETUID在類 UNIX 系統上還有許多其他命令( chshscreenpingsu等),所有這些命令都需要提升權限才能正確操作。還有一些SETGID程序,核心臨時更改程序的 GID,以允許訪問日誌文件等sendmail就是這樣的實用程序。

sticky bit用於稍微不同的目的。它最常見的用途是確保只有創建文件的使用者帳戶才能刪除它。想想/tmp目錄。它具有非常寬鬆的權限,允許任何人在那裡創建文件。這很好,並且允許使用者的程序創建臨時文件(screen,ssh等,將狀態資訊保存在/tmp)。為了保護使用者的臨時文件,/tmp設置了粘性位,這樣只有我可以刪除我的文件,只有你可以刪除你的。當然,root 可以做任何事情,但我們必須希望系統管理員沒有精神錯亂!

對於普通文件(即,對於非執行檔),設置 SETUID/SETGID 位幾乎沒有意義。某些系統上目錄上的 SETGID 控制在該目錄中創建的新文件的預設組所有者。

引用自:https://unix.stackexchange.com/questions/43744