GID 是什麼意思?
GID 實際上是什麼意思?
我用Google搜尋了它,這就是linux.about.com所說的:
程序的組標識號。有效的組號在文件
/etc/group
的 GID 欄位中給出/etc/passwd
。當一個程序啟動時,它的 GID 被設置為其父程序的 GID。
- 但是,這是什麼意思?
我對我的文件夾的權限目前在
0755
我知道如果我為所有者設置 UID,它將是
4755
如果我設置組的 GID,它將是
2755
如果我為其他人設置粘性位,它將是
1755
- 設置這些權限甚至重要嗎?
類 UNIX 系統中的每個程序,就像每個文件一樣,都有一個所有者(使用者,無論是真實使用者還是系統“偽使用者”,例如
daemon
、bin
、man
等)和組所有者。使用者文件的組所有者通常是該使用者的主要組,並且以類似的方式,您啟動的任何程序通常由您的使用者 ID 和主要組 ID 所有。但是,有時需要提升權限才能執行某些命令,但不希望提供完整的管理權限。例如,該
passwd
命令需要訪問系統的影子密碼文件,以便更新您的密碼。顯然,你不想給每個使用者root權限,只是為了讓他們可以重置密碼——這無疑會導致混亂!相反,需要有另一種方法來臨時授予使用者提升的權限以執行某些任務。這就是 SETUID 和 SETGID 位的用途。這是一種告訴核心在標記命令執行期間臨時提高使用者權限的方法。SETUID 二進製文件將以執行檔所有者的權限執行(通常root
),並且將使用執行檔的組所有者的組權限執行 SETGID 二進製文件。對於passwd
屬於root
SETUID的命令,它允許普通使用者以受控和可預測的方式通過以root權限執行來直接影響密碼文件的內容。SETUID
在類 UNIX 系統上還有許多其他命令(chsh
、screen
、ping
、su
等),所有這些命令都需要提升權限才能正確操作。還有一些SETGID
程序,核心臨時更改程序的 GID,以允許訪問日誌文件等sendmail
就是這樣的實用程序。
sticky bit
用於稍微不同的目的。它最常見的用途是確保只有創建文件的使用者帳戶才能刪除它。想想/tmp
目錄。它具有非常寬鬆的權限,允許任何人在那裡創建文件。這很好,並且允許使用者的程序創建臨時文件(screen
,ssh
等,將狀態資訊保存在/tmp
)。為了保護使用者的臨時文件,/tmp
設置了粘性位,這樣只有我可以刪除我的文件,只有你可以刪除你的。當然,root 可以做任何事情,但我們必須希望系統管理員沒有精神錯亂!對於普通文件(即,對於非執行檔),設置 SETUID/SETGID 位幾乎沒有意義。某些系統上目錄上的 SETGID 控制在該目錄中創建的新文件的預設組所有者。