/etc/passwd 細節混亂

/etc/passwd 細節混亂

我知道 /etc/passwd 檔案由多行用戶帳戶組成,其中包含 7 個字段,即:

username:encrypted password or token:userid:groupid:gecos:home directory:default shell 

然而,一些用戶的詳細資訊顯示為

username:x:1000:1000:username,,,:/home/username:/bin/bash

逗號代表什麼?

編輯

根據下面 Daniel 的評論 - 我問為什麼出現逗號的原因是因為 /etc/passwd 中沒有其他用戶帳戶似乎具有相同的結構,儘管沒有 gecos 字段的其他詳細信息。

答案1

Gecos 欄位不僅包含使用者名,還包含有關該使用者的資訊 fe:

  • 真正的名字
  • 房號
  • 電話號碼
  • 等等...

如果我們看一下維基百科文章的範例,這就變得清楚了:

jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh

第五個字段稱為 Gecos 字段,是描述個人或帳戶的評論。通常,這是一組逗號分隔的值,包括使用者的全名和聯絡資訊。

所以您看到的是一組空的使用者資訊。這些資訊在文件中的處理和設定方式很可能因係統而異passwd

答案2

正如對原始問題的評論所說:為什麼我的 /etc/passwd 檔案中會有奇怪的逗號?http://en.wikipedia.org/wiki/Gecos_field解釋什麼這些字段是。

回答「他們為什麼會出現」這個問題一些使用者而不是其他人」:此資訊通常由將使用者新增至系統的工具所建立。對於使用者來說,例如「房間號」是沒有意義的sshd,因此這些欄位在創建過程中會被忽略這些使用者。

但為什麼我會看到例如

mysql:x:107:109:MySQL Server,,,:/var/lib/mysql:/bin/false

在我的etc/passwd?該用戶可能是由為了方便起見而使用的腳本adduser(存在於許多常見系統上)而不是更底層的useradd工具(我認為命名可能更好)創建的,並adduser自動創建 Gecos 佔位符。或者,它可能是用戶創建時有意識的選擇,只是為了遵守 Gecos 格式以實現一致性,但我認為在這些情況下這大多是不必要的。

那麼為什麼我的普通用戶的 Gecos 欄位也是空的?因為我根本沒有填寫房號等。當我創建該用戶時(我什至不知道我在系統安裝過程中是否有這個選擇 - 我不這麼認為)。

(附註:該系統意味著大多數工具都會錯誤地解釋全名,例如“Daniel Andersson,PhD”。)

相關內容