/etc/passwd中一行記錄對應著一個使用者,每行記錄又被冒號(分隔為7個欄位,其格式和具體含義如下:
使用者名稱:口令:使用者標識號:組標識號:注釋性描述:主目錄:登入Shell
1)“使用者名稱”是代表使用者帳號的字串。通常長度不超過8個字元,並且由大小寫字母和/或數字組成。登入名稱中不能有冒號(,因為冒號在這裡是分隔字元。為了相容起見,登入名稱中最好不要包含點字元(.),並且不使用連字號(-)和加號(+)打頭。
2)“口令”一些系統中,存放著加密後的使用者口令字。。雖然這個欄位存放的只是使用者口令的加密串,不是 明文,但是由於/etc/passwd檔案對所有使用者都可讀,所以這仍是一個安全隱患。因此,現在許多 Linux 系統(如SVR4)都使用了shadow技術,把真正的加密後的使用者口令字存放到/etc/shadow檔案中,而在/etc/passwd檔案的口令欄位中只存放一個特殊的字元,例如“x”或者“*”。
3)“使用者標識號”是一個整數,系統內部用它來標識使用者。一般情況下它與使用者名稱是一一對應的。如果幾個使用者名稱對應的使用者標識號是一樣的,系統內部將把它們視為同一個使用者,但是它們可以有不同的口令、不同的主目錄以及不同的登入Shell等。
通常使用者標識號的取值範圍是0~65 535。0是超級使用者root的標識號,1~99由系統保留,作為管理帳號,普通使用者的標識號從100開始。在Linux系統中,這個界限是500。
4)“組標識號”欄位記錄的是使用者所屬的使用者組。它對應著/etc/group檔案中的一條記錄。
5)“注釋性描述”欄位記錄著使用者的一些個人情況,例如使用者的真實姓名、電話、地址等,這個欄位並沒有什麼實際的用途。在不同的Linux 系統中,這個欄位的格式並沒有統一。在許多Linux系統中,這個欄位存放的是一段任意的注釋性標題文字,用做finger命令的輸出。
6)“主目錄”,也就是使用者的起始工作目錄,它是使用者在登入到系統之後所處的目錄。在大多數系統中,各使用者的主目錄都被組織在同一個特定的目錄下,而使用者主目錄的名稱就是該使用者的登入名稱。各使用者對自己的主目錄有讀、寫、執行(搜尋)許可權,其他使用者對此目錄的存取權限則根據具體情況設定。
7)使用者登入後,要啟動一個進程,負責將使用者的操作傳給核心,這個進程是使用者登入到系統後啟動並執行命令直譯器或某個特定的程式,即Shell。Shell 是使用者與Linux系統之間的介面。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系統管理員可以根據系統情況和使用者習慣為使用者指定某個Shell。如果不指定Shell,那麼系統使用sh為預設的登入Shell,即這個欄位的值為/bin/sh。
使用者的登入Shell也可以指定為某個特定的程式(此程式不是一個命令直譯器)。利用這一特點,我們可以限制使用者只能運行指定的應用程式,在該應用程式運行結束後,使用者就自動結束了系統。有些Linux 系統要求只有那些在系統中登記了的程式才能出現在這個欄位中。
# cat /etc/group 組名:加密密碼:組ID:所有屬於該組的使用者。