通常在Linux系統(tǒng)中,用戶的關(guān)鍵信息被存放在系統(tǒng)的/etc/passwd文件中,系統(tǒng)的每一個合法用戶賬號對應于該文件中的一行記錄。這行記錄定義了每個用戶賬號的屬性。下面是一個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
在該文件中,每一行用戶記錄的各個數(shù)據(jù)段用“:”分隔,分別定義了用戶的各方面屬性。各個字段的順序和含義如下:
注冊名:口令:用戶標識號:組標識號:用戶名:用戶主目錄:命令解釋程序
(1)注冊名(login_name):用于區(qū)分不同的用戶。在同一系統(tǒng)中注冊名是惟一的。在很多系統(tǒng)上,該字段被限制在8個字符(字母或數(shù)字)的長度之內(nèi);并且要注意,通常在Linux系統(tǒng)中對字母大小寫是敏感的。這與MSDOS/Windows是不一樣的。
(2)口令(passwd):系統(tǒng)用口令來驗證用戶的合法性。超級用戶root或某些高級用戶可以使用系統(tǒng)命令passwd來更改系統(tǒng)中所有用戶的口令,普通用戶也可以在登錄系統(tǒng)后使用passwd命令來更改自己的口令。
現(xiàn)在的Unix/Linux系統(tǒng)中,口令不再直接保存在passwd文件中,通常將passwd文件中的口令字段使用一個“x”來代替,將/etc/shadow作為真正的口令文件,用于保存包括個人口令在內(nèi)的數(shù)據(jù)。當然shadow文件是不能被普通用戶讀取的,只有超級用戶才有權(quán)讀取。
此外,需要注意的是,如果passwd字段中的第一個字符是“*”的話,那么,就表示該賬號被查封了,系統(tǒng)不允許持有該賬號的用戶登錄。
(3)用戶標識號(UID):UID是一個數(shù)值,是Linux系統(tǒng)中惟一的用戶標識,用于區(qū)別不同的用戶。在系統(tǒng)內(nèi)部管理進程和文件保護時使用UID字段。在Linux系統(tǒng)中,注冊名和UID都可以用于標識用戶,只不過對于系統(tǒng)來說UID更為重要;而對于用戶來說注冊名使用起來更方便。在某些特定目的下,系統(tǒng)中可以存在多個擁有不同注冊名、但UID相同的用戶,事實上,這些使用不同注冊名的用戶實際上是同一個用戶。
(4)組標識號(GID):這是當前用戶的缺省工作組標識。具有相似屬性的多個用戶可以被分配到同一個組內(nèi),每個組都有自己的組名,且以自己的組標識號相區(qū)分。像UID一樣,用戶的組標識號也存放在passwd文件中。在現(xiàn)代的Unix/Linux中,每個用戶可以同時屬于多個組。除了在passwd文件中指定其歸屬的基本組之外,還在/etc/group文件中指明一個組所包含用戶。
(5)用戶名(user_name):包含有關(guān)用戶的一些信息,如用戶的真實姓名、辦公室地址、聯(lián)系電話等。在Linux系統(tǒng)中,mail和finger等程序利用這些信息來標識系統(tǒng)的用戶。
(6)用戶主目錄(home_directory):該字段定義了個人用戶的主目錄,當用戶登錄后,他的Shell將把該目錄作為用戶的工作目錄。在Unix/Linux系統(tǒng)中,超級用戶root的工作目錄為/root;而其它個人用戶在/home目錄下均有自己獨立的工作環(huán)境,系統(tǒng)在該目錄下為每個用戶配置了自己的主目錄。個人用戶的文件都放置在各自的
主目錄下。
(7)命令解釋程序(Shell):Shell是當用戶登錄系統(tǒng)時運行的程序名稱,通常是一個Shell程序的全路徑名,
如/bin/bash。
需要注意的是,系統(tǒng)管理員通常沒有必要直接修改passwd文件,Linux提供一些賬號管理工具幫助系統(tǒng)管理員來創(chuàng)建和維護用戶賬號