1. 程式人生 > >linux cat /etc/passwd 說明

linux cat /etc/passwd 說明

通常在Linux系統中,使用者的關鍵資訊被存放在系統的/etc/passwd檔案中,系統的每一個合法使用者賬號對應於該檔案中的一行記錄。這行記錄定義了每個使用者賬號的屬性。下面是一個passwd檔案的示例(部分摘錄):
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......
desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
mengqc:x:500:500:mengqc:/home/mengqc:/bin/bash
在該檔案中,每一行使用者記錄的各個資料段用“:”分隔,分別定義了使用者的各方面屬性。各個欄位的順序和含義如下:
註冊名:口令:使用者標識號:組標識號:使用者名稱:使用者主目錄:命令解釋程式
(1)註冊名(login_name):用於區分不同的使用者。在同一系統中註冊名是惟一的。在很多系統上,該欄位被限制在8個字元(字母或數字)的長度之內;並且要注意,通常在Linux系統中對字母大小寫是敏感的。這與MSDOS/Windows是不一樣的。

(2)口令(passwd):系統用口令來驗證使用者的合法性。超級使用者root或某些高階使用者可以使用系統命令passwd來更改系統中所有使用者的口令,普通使用者也可以在登入系統後使用passwd命令來更改自己的口令。
現在的Unix/Linux系統中,口令不再直接儲存在passwd檔案中,通常將passwd檔案中的口令欄位使用一個“x”來代替,將/etc /shadow作為真正的口令檔案,用於儲存包括個人口令在內的資料。當然shadow檔案是不能被普通使用者讀取的,只有超級使用者才有權讀取。
此外,需要注意的是,如果passwd欄位中的第一個字元是“*”的話,那麼,就表示該賬號被查封了,系統不允許持有該賬號的使用者登入。

(3)使用者標識號(UID):UID是一個數值,是Linux系統中惟一的使用者標識,用於區別不同的使用者。在系統內部管理程序和檔案保護時使用 UID欄位。在Linux系統中,註冊名和UID都可以用於標識使用者,只不過對於系統來說UID更為重要;而對於使用者來說註冊名使用起來更方便。在某些特定目的下,系統中可以存在多個擁有不同註冊名、但UID相同的使用者,事實上,這些使用不同註冊名的使用者實際上是同一個使用者。

(4)組標識號(GID):這是當前使用者的預設工作組標識。具有相似屬性的多個使用者可以被分配到同一個組內,每個組都有自己的組名,且以自己的組標識號相區分。像UID一樣,使用者的組標識號也存放在passwd檔案中。在現代的Unix/Linux中,每個使用者可以同時屬於多個組。除了在 passwd檔案中指定其歸屬的基本組之外,還在/etc/group檔案中指明一個組所包含使用者。

(5)使用者名稱(user_name):包含有關使用者的一些資訊,如使用者的真實姓名、辦公室地址、聯絡電話等。在Linux系統中,mail和finger等程式利用這些資訊來標識系統的使用者。

(6)使用者主目錄(home_directory):該欄位定義了個人使用者的主目錄,當用戶登入後,他的Shell將把該目錄作為使用者的工作目錄。在Unix/Linux系統中,超級使用者root的工作目錄為/root;而其它個人使用者在/home目錄下均有自己獨立的工作環境,系統在該目錄下為每個使用者配置了自己的主目錄。個人使用者的檔案都放置在各自的
主目錄下。

(7)命令解釋程式(Shell):Shell是當用戶登入系統時執行的程式名稱,通常是一個Shell程式的全路徑名,
如/bin/bash。

需要注意的是,系統管理員通常沒有必要直接修改passwd檔案,Linux提供一些賬號管理工具幫助系統管理員來建立和維護使用者賬號
-------------------------------------------------------------------------

/etc/passwd
檔案是一個純文字檔案,每行採用了相同的格式:
name:password:uid:gid:comment:home:shell

Name:使用者登入名
Password:使用者口令。此域中的口令是加密的。當用戶登入系統時,系統對輸入的口令採取相同的演算法,與此域中的內容進行比較。如果此域為空,表明該使用者登入時不需要口令。
Uid:指定使用者的 UID。使用者登入進系統後,系統通過該值,而不是使用者名稱來識別使用者。
gid:GID。如果系統要對相同的一群人賦予相同的權利,則使用該值。

comment:用來儲存使用者的真實姓名和個人細節。
home:指定使用者的主目錄的絕對路徑。
shell:如果使用者登入成功,則要執行的命令的絕對路徑放在這一區域中。它可以是任何命令。

/etc/passwd範例:

root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
...... desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin

20100909_b7084521d9d9e87efac095st83e4nqED.JPG