組文件以及與之相關的所有內容
我對 nix 作業系統很陌生。我了解該文件的格式和用法(至少手冊頁所說的)
/etc/group
。有一天,我試圖用備份副本替換我的組文件。我將文件名更改為group.old
,然後我機器中的所有帳戶都失去了root*訪問權限。我不得不進入單使用者模式來修復它。看來我需要對這個小組和整個 UNIX 帳戶的事情進行深入的學習。誰能給我一個連結或與我分享你的學習經驗?
該文件
/etc/group
指示哪些使用者是哪些組的成員。組用於訪問控制;他們補充使用者。
/etc/group
在登錄時讀取。每個程序作為一個使用者和一個或多個組執行。登錄過程開始以所有權限執行;一個使用者已成功通過身份驗證(例如,通過輸入密碼),登錄過程採用中指示的組/etc/group
(加上 中指示的一個組/etc/passwd
),然後作為經過身份驗證的使用者啟動一個 shell。您可能已經註意到,每個文件都帶有三組權限(使用者、組和其他)以及所有者和組。當一個程序試圖訪問一個文件時,然後:
- 如果程序以擁有文件的使用者身份執行,則適用的權限是使用者權限。
- 否則,如果程序的組之一是擁有文件的組,則適用的權限是組權限。
- 否則,適用的權限為其他權限。
例子:
$ ls -l myfile -rw-r----- 1 msh gutenberg 1234 Jul 4 1971 books.txt
使用者
msh
可以讀取和寫入此文件 (rw-
)。組中的任何使用者gutenberg
都可以讀取文件 (r--
)。其他使用者根本無法訪問該文件 (---
)。因此,組允許您使文件可供所有使用者的子集訪問。系統服務和設備也可以僅限於某個使用者或某個組。
組有三種典型用途:
- 處理同一個項目的物理使用者組,訪問同一組文件,如上例所示。
- 用於對系統資源進行訪問控制的物理使用者組。例如,競技遊戲通常會儲存屬於使用者
root
和組的高分文件games
,只能由所有使用者寫入,games
而不是由所有使用者寫入(rw-rw----
);遊戲程序以提升的特權作為games
組執行(它被設置為games
),因此它可以讀取和寫入高分文件,但其他程序不能。- 系統使用者組。例如,許多系統服務作為專用使用者和專用組執行,以最大程度地降低一個服務中的錯誤或妥協可能影響其他服務的風險。
鑑於您的症狀,您的系統設置為
root
通過組成員身份控制對帳戶的訪問。有幾種方法可以做到這一點。最常見的設置是:
- 通過sudo訪問 root 帳戶。使用者必須輸入自己的密碼才能執行
sudo
。如果使用者在組中,則允許使用者以sudo
root 身份呼叫以執行命令admin
。這由類似%admin: ALL=(ALL) ALL
in的行表示/etc/sudoers
。有時組的名稱不同。這是 Ubuntu 中的預設設置。- 通過su訪問 root 帳戶。只有
wheel
組中的使用者可以執行su
。使用者必須輸入root密碼才能執行su
;這樣,攻擊者要想滲透到root賬戶,就必須同時獲取使用者密碼和root密碼。這是一些 BSD 系統上的預設設置,但隨著攻擊者變得更加複雜(盜用帳戶、執行鍵盤記錄程序、獲取 root 密碼),它已被廢棄。道德:
/etc
如果您不知道它們在做什麼,請不要更改或刪除其中的文件。如果您確實更改了某些內容,請從 root shell 進行,然後測試您是否仍然可以登錄;如果不能,請立即恢復更改。我建議在
/etc
. 在 Ubuntu 上,安裝etckeeper包並執行etckeeper init
(以 root 身份)。