FlossDoc: 请协力 GPLv3 的中文翻译工作。

File:/etc/master.passwd

FlossDoc,自由中文開源知識庫

< File: | etc
Jump to: navigation, search

master.passwd 是包括 FreeBSD、OpenBSD、NetBSD 和 iOS 等 BSD Unix 系統存放每一個使用者資訊和密碼的檔案。和 /etc/passwd 不同,它的檔案權限 (file mode) 一般會設為只有超級使用者才可以讀取,以減低使用者密碼受到攻擊的機會。

master.passwd 格式和 passwd 很相似,只是多了使用者類別 (class)、密碼有效期限和帳號有效期限三欄。為兼容一般 Unix 程式,每次改變 master.passwd 的內容會由工具 pwd_mkdb 透過刪去多了的三欄和把密碼欄取替為星號 (“*”) 來更新 passwd 。因為 master.passwd 亦是一個簡單的文字檔,一般可以直接使用任何文字編輯器修改,但為安全起見,請使用系統提供的工具如 passwd、chage 和 vipw -s 等改變此檔案的內容。

目录

結構與內容

master.passwd 檔案中的每一列記錄了系統每一個使用者的資料。每一列的格式如下:

username:encrypted-password:UID:GID:class:change:expire:comment:home-directory:login-shell

以下是個典型 master.passwd 檔案的內容:

root:m9lkMX9ZCD3ZA:0:0::0:0:Charlie &:/root:/bin/csh
toor:*:0:0::0:0:Bourne-again Superuser:/root:
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin

每一列都有七欄資料,欄與欄之間以冒號 (“:”) 分隔。每一欄的用途以下:

  1. 使用者名稱 (Username) - 登入和識別使用者的名稱。一般都建議只使用小階英文字母和數字組合作為使用者名稱,而第一個字元一般需要是英文字母。部份 Unix 容許較寬鬆的命名規則,例如很多 Unix 都容許使用底線等 (“_”)。不過使用如大階字母和點號 (“.”) 有機會搞亂一些如電郵程式等軟件的運作。[1]
  2. 已加密的密碼 (Encrypted password) - 如其名,這欄是存放已加密的使用者密碼。特別留意如果這欄是空的,表示無需輸入密碼就可以登入這使用者。這在正常系統是絕對不可能出現的。唯一原因就是系統已被人入侵。如果這欄第一個字元為星號 “*” 表示此帳戶已被停用。如果以 “*LOCKED*” 開頭,表示此帳戶已鎖定不能登入。
  3. 使用者識別編號 (UID, User identification number) - 系統真正識別使用者的編號。如果兩個或以上的使用者擁相同的 UID ,系統會當相同旳使用者處理。[2]特別留意 UID 為 0 的使用者,表示他有和系統管理員 root 相同的權力。如果發現有 root 以外使用者的 UID 為 0 ,一般表示系統已被人入侵和該使用者是入侵者所設的後門 (back door)。
  4. 首要群組識別編號 (GID, Primary group ID) - 使用者登入時預設使用者群組的識別編號,一般要對應 /etc/group 中的群組資料。
  5. 使用者登入的類別 (class) - 設定使用者登入時的類別,可以設定使用者的性質、環境、計費和可使用的系統資源等。登入類別是在設定檔 /etc/login.conf 中定義。
  6. 密碼有效期限 (Change) - 由 Epoch 日期 1970 年 1 月 1 日凌晨零時零分至密碼必須被變更時間的秒數。如果為 0 或被漏空,則代表不設限。
  7. 帳號有效期限 (Expire) - 由 Epoch 日期 1970 年 1 月 1 日凌晨零時零分至帳號的有效期限的秒數。如果為 0 或被漏空,則代表沒有期限。
  8. 使用者全名或註解 (Comment or User fullname) - 傳統上存放了使用者的真實姓名和其他附加資訊。附加資訊一般會逗號 (“,”) 分隔開,其意義和次序在不同 Unix 系統可有分別,但一般格式為「使用者全名,辦公室編號,辦公室電話號碼,屋宅電話號碼」,各以逗號 (“,”) 分隔開。如果使用者全名有 (&) ,使用時會用第一個字元變為大寫的日使用者登入名稱取替。這欄亦傳統上叫作 GECOS 或 GCOS 欄,因為早期貝爾實驗室 (Bell Lab) 中的 Unix 系統一般使用 GECOS 作列印 spooling 和其他工作,而這欄就被加入 passwd 檔案存放登入 GECOS 系統需要的 ID。[2][3]
  9. 個人目錄 (User home directory) - 使用者個人目錄 (home directory) 的路徑。
  10. 登入命令解析器 (login shell/command interpreter) - 使用登入時使用的 Shell 命令解析器。

相關工具

  • passwd - 更改使用者密碼
  • chfn - 更改使用者名稱
  • chsh - 更改使用者 shell
  • vipw - 編輯 /etc/passwd 檔案
  • pwd_mkdb - 依 master.passwd 內容自動產生 /etc/passwd、/etc/pwd.db 和 /etc/spwd.db 的工具。

相關檔案

  • /etc/passwd - 傳統 Unix/Linux 記錄使用者資料的檔案。
  • /etc/group - 傳統 Unix/Linux 記錄使用者群組的檔案。
  • /etc/pwd.db - 為加快閱取使用者資料的 db 版本。
  • /etc/spwd.db - 為加快閱取使用者密碼和安全資料的 db 版本。
  • /etc/shadow - Linux 和 BSD 以外大部份 Unix 系統使用 shadow password 時儲存使用者密碼和相關資料的檔案。
  • /etc/gshadow - Linux 和 BSD 以外大部份 Unix 系統使用 shadow password 時儲存使用者群組密碼和相關資料的檔案。

例子

Apple Mac OS X

Apple Mac OS X 實際將使用者的資料放入目錄服務中,master.passwd 只供系統在單使用者模式 (single-user mode) 中使用。

##
# User Database
# 
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# See the opendirectoryd(8) man page for additional information about
# Open Directory.
##
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:*:0:0::0:0:System Administrator:/var/root:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
_uucp:*:4:4::0:0:Unix to Unix Copy Protocol:/var/spool/uucp:/usr/sbin/uucico
_networkd:*:24:24::0:0:Network Services:/var/empty:/usr/bin/false
_installassistant:*:25:25::0:0:Install Assistant:/var/empty:/usr/bin/false
_lp:*:26:26::0:0:Printing Services:/var/spool/cups:/usr/bin/false
_postfix:*:27:27::0:0:Postfix Mail Server:/var/spool/postfix:/usr/bin/false
_scsd:*:31:31::0:0:Service Configuration Service:/var/empty:/usr/bin/false
_ces:*:32:32::0:0:Certificate Enrollment Service:/var/empty:/usr/bin/false
_mcxalr:*:31:31::0:0:Service COnfiguration Service:/var/empty:/usr/bin/false
_pcastagent:*:55:55::0:0:Podcast Producer Agent:/var/pcast/agent:/usr/bin/false
_pcastserver:*:56:56::0:0:Podcast Producer Server:/var/pcast/server:/usr/bin/false
_serialnumberd:*:58:58::0:0:Serial Number Daemon:/var/empty:/usr/bin/false
_devdocs:*:59:59::0:0:Developer Documentation:/var/empty:/usr/bin/false
_sandbox:*:60:60::0:0:Seatbelt:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65::0:0:mDNSResponder:/var/empty:/usr/bin/false
_ard:*:67:67::0:0:Apple Remote Desktop:/var/empty:/usr/bin/false
_www:*:70:70::0:0:World Wide Web Server:/Library/WebServer:/usr/bin/false

Jailbreak iOS

##
# User Database
# 
# This file is the authoritative user database.
##
nobody:*:-2:-2::0:0:Unprivileged User:/var/empty:/usr/bin/false
root:m9lkMX9ZCD3ZA:0:0::0:0:System Administrator:/var/root:/bin/sh
mobile:QV0K5p9TdvUIQ:501:501::0:0:Mobile User:/var/mobile:/bin/sh
daemon:*:1:1::0:0:System Services:/var/root:/usr/bin/false
_wireless:*:25:25::0:0:Wireless Services:/var/wireless:/usr/bin/false
_securityd:*:64:64::0:0:securityd:/var/empty:/usr/bin/false
_mdnsresponder:*:65:65::0:0:mDNSResponder:/var/empty:/usr/bin/false
_sshd:*:75:75::0:0:sshd Privilege separation:/var/empty:/usr/bin/false
_unknown:*:99:99::0:0:Unknown User:/var/empty:/usr/bin/false

參考資料

  1. FreeBSD (2007-05-08). “FreeBSD 9 Manpage: master.passwd(5) - format of the password file”.
  2. 2.0 2.1 Frisch, AEleen (2002). Essential System Administration. 3rd edition. O'Reilly, Inc. p.224.
  3. Wikipedia. “Gecos field”. Accessed at Oct 8th 2008.

外部連結

Personal tools