/etc/passwd 檔案儲存了所有 Linux 帳號的登入資訊,例如 User ID, Group ID, 家目錄, shell 等。每一個帳號一行 資料,每個欄位以冒號 “:” 分隔。一般帳號對 passwd 有可讀權限,而只有 root 有可寫入的權限。
以下是每個欄位的所儲存的內容:
Username: 帳號登入的 username, 長度可以 1 至 32 個字元。
Password: 這個欄位會用 x 字元代替加密的密碼,而加密的密碼儲存在 /etc/shadow 檔案內。
User ID (UID): 每個帳號都有一個獨一無二的 user ID (UID), UID 0 是留給 root,而 1 至 99 預留給系統帳號。
Group ID (GID): 儲存在 /etc/group 的 primary group ID.
User ID Info: 可以加入一些額外的資訊,例如姓名,電話等,但不是必須要有內容。
Home Directory: 帳號的家目錄。
Shell: 帳號使用的 shell。
要列出所有帳號,可以直接用 cat 輸出 /etc/passwd:
$ cat /etc/passwd
搜尋出等定帳號,例如想找出 opencli 帳號:
$ grep opencli /etc/passwd
系統帳號已加密的密碼並不會儲存在 /etc/passwd, 而是儲存在 /etc/shadow, 在 /etc/passwd 的密碼欄位只會儲存 (*) 代替。這是由於 /etc/passwd 的權限是 rw-r–r (644), 普通帳號也可以讀取加密了的密碼。而 /etc/shadow 則是 -w—– (400) 權限, 只有 root 可以讀寫。