服務(wù)創(chuàng)造價(jià)值、存在造就未來
用戶管理是Linux的優(yōu)良特性之一,通過本節(jié)讀者可以了解Linux中的用戶類型和用戶的登錄過程。
3.2.1 Linux的用戶類型
Linux的用戶類型分為3類:超級(jí)用戶、系統(tǒng)用戶和普通用戶。舉一個(gè)簡單的例子,機(jī)房管理員可以出入機(jī)房的任意一個(gè)地方,而普通用戶就沒有這個(gè)權(quán)限。
(1)超級(jí)用戶:用戶名為root或USER ID(UID)為0的賬號(hào),具有一切權(quán)限,可以操作系統(tǒng)中的所有資源。root可以進(jìn)行基礎(chǔ)的文件操作及特殊的系統(tǒng)管理,還可進(jìn)行網(wǎng)絡(luò)管理,可以修改系統(tǒng)中的任何文件。日常工作中應(yīng)避免使用此類賬號(hào),錯(cuò)誤的操作可能帶來不可估量的損失,只有必要時(shí)才用root登錄系統(tǒng)。
(2)系統(tǒng)用戶:正常運(yùn)行系統(tǒng)時(shí)使用的賬戶。每個(gè)進(jìn)程運(yùn)行在系統(tǒng)里都有一個(gè)相應(yīng)的屬主,比如某個(gè)進(jìn)程以何種身份運(yùn)行,這些身份就是系統(tǒng)里對(duì)應(yīng)的用戶賬號(hào)。注意,系統(tǒng)賬號(hào)是不能用來登錄的,比如bin、daemon、mail等。
(3)普通用戶:普通使用者能使用Linux的大部分資源,一些特定的權(quán)限受到控制。用戶只對(duì)自己的目錄有寫權(quán)限,讀寫權(quán)限受一定的限制,從而有效保證了Linux的系統(tǒng)安全,大部分用戶屬于此類。
注意:出于安全考慮,用戶的密碼至少有8個(gè)字符,并且包含字母、數(shù)字和其他特殊符號(hào)。如果忘記密碼,很容易解決,root用戶可以更改任何用戶的密碼。
3.2.2 用戶管理機(jī)制
Linux中的用戶管理涉及用戶賬號(hào)文件/etc/passwd、用戶密碼文件/etc/shadow、用戶組文件/etc/group。本小節(jié)將簡要介紹這些文件的作用及格式。
1. 用戶賬號(hào)文件/etc/passwd
該文件為純文本文件,可以使用cat、head等命令查看。該文件記錄了每個(gè)用戶的必要信息,文件中的每一行對(duì)應(yīng)一個(gè)用戶的信息,每行的字段之間使用“:”分隔,共7個(gè)字段:
用戶名稱:用戶密碼:USER ID:GROUP ID:相關(guān)注釋:主目錄:使用的Shell
根據(jù)以下示例進(jìn)行分析:
root:x:0:0:root:/root:/bin/bash
(1)用戶名稱:在Linux系統(tǒng)中用唯一的字符串區(qū)分不同的用戶,用戶名可以由字母、數(shù)字和下劃線組成,注意Linux系統(tǒng)對(duì)字母大小寫是敏感的,比如USERNAME1和username1分別屬于不同的用戶。
(2)用戶密碼:在用戶校驗(yàn)時(shí)驗(yàn)證用戶的合法性。超級(jí)用戶root可以更改系統(tǒng)中所有用戶的密碼,普通用戶登錄后可以使用passwd命令來更改自己的密碼。在/etc/passwd文件中該字段一般為x,這是因?yàn)槌鲇诎踩紤]該字段加密后的密碼數(shù)據(jù)已經(jīng)移至/etc/shadow中。注意/etc/shadow文件是不能被普通用戶讀取的,只有超級(jí)用戶root才有權(quán)限讀取。
(3)用戶標(biāo)識(shí)號(hào)(USER ID,UID):是一個(gè)數(shù)值,用于唯一標(biāo)識(shí)Linux系統(tǒng)中的用戶來區(qū)別不同的用戶。在Linux系統(tǒng)中最多可以使用65535個(gè)用戶名,用戶名和UID都可以用于標(biāo)識(shí)用戶。相同UID的用戶可以認(rèn)為是同一用戶,同時(shí)它們也具有相同的權(quán)限,當(dāng)然對(duì)于用戶而言用戶名更容易記憶和使用。
(4)組標(biāo)識(shí)號(hào)(GROUP ID,GID):當(dāng)前用戶所屬的默認(rèn)用戶組標(biāo)識(shí)。當(dāng)添加用戶時(shí),系統(tǒng)默認(rèn)會(huì)建立一個(gè)和用戶名一樣的用戶組,多個(gè)用戶可以屬于相同的用戶組。用戶的組標(biāo)識(shí)號(hào)存放在/etc/passwd文件中。用戶可以同時(shí)屬于多個(gè)組,每個(gè)組也可以有多個(gè)用戶,除了在/etc/passwd文件中指定其歸屬的基本組之外,在/etc/group文件中也指明一個(gè)組所包含的用戶。
(5)相關(guān)注釋:用于存放用戶的一些其他信息,比如用戶含義說明、用戶地址等信息。
(6)主目錄:該字段定義了用戶的主目錄,登錄后Shell將把該目錄作為用戶的工作目錄。登錄系統(tǒng)后可以使用pwd命令查看。超級(jí)用戶root的工作目錄為/root。每個(gè)用戶都有自己的主目錄,一般默認(rèn)在/home下建立與用戶名一致的目錄,同時(shí)建立用戶時(shí)可以指定其他目錄作為用戶的主目錄。
(7)使用的Shell:Shell是當(dāng)用戶登錄系統(tǒng)時(shí)運(yùn)行的程序名稱,通常是/bin/bash。 同時(shí)系統(tǒng)中可能存在其他的Shell,比如tsh。用戶可以自己指定Shell,也可以隨時(shí)更改,比較流行的是/bin/bash。
2. 用戶密碼文件/etc/shadow
該文件為文本文件,但這個(gè)文件只有超級(jí)用戶才能讀取,普通用戶沒有權(quán)限讀取。任何用戶對(duì)/etc/passwd文件都有讀的權(quán)限,雖然密碼經(jīng)過加密,但是可能還是有人會(huì)獲取加密后的密碼。通過把加密后的密碼移動(dòng)到shadow文件中并限制只有超級(jí)用戶root才能夠讀取,有效保證了Linux用戶密碼的安全性。
和/etc/passwd文件類似,shadow文件由9個(gè)字段組成:
用戶名:密碼:上次修改密碼的時(shí)間:兩次修改密碼間隔的最少天數(shù):兩次修改密碼間隔的最多天數(shù):提前多少天警告用戶密碼將過期:在密碼過期多少天后禁用此用戶:用戶過期時(shí)間:保留字段
根據(jù)以下示例進(jìn)行分析:
root:$1$qb1cQvv/$ku20Uld75KAOx.4WK6d/t/:15649:0:99999::::
(1)用戶名:也稱為登錄名,/etc/shadow中的用戶名和/etc/passwd中的相同,每一行是一一對(duì)應(yīng)的,這樣就把passwd 和shadow中的用戶記錄聯(lián)系在了一起。
(2)密碼:該字段是經(jīng)過加密的,如果有些用戶在這段的開頭是“!”,就表示這個(gè)用戶已經(jīng)被禁止使用,不能登錄系統(tǒng)。
(3)上次修改密碼的時(shí)間:該列表示從1970年1月1日起到最近一次修改密碼的時(shí)間間隔,以天數(shù)為單位。
(4)兩次修改密碼間隔的最少天數(shù):該字段如果為0,就表示此功能被禁用;如果是不為0的整數(shù),就表示用戶必須經(jīng)過多少天才能修改其密碼。
(5)兩次修改密碼間隔的最多天數(shù):主要作用是管理用戶密碼的有效期,增強(qiáng)系統(tǒng)的安全性,該示例中為99999,表示密碼基本不需要修改。
(6)提前多少天警告用戶密碼將過期:在快超出有效期時(shí),當(dāng)用戶登錄系統(tǒng)后,系統(tǒng)程序會(huì)提醒用戶密碼將要作廢,以便及時(shí)更改。
(7)在密碼過期多少天后禁用此用戶:此字段表示用戶密碼作廢多少天后系統(tǒng)會(huì)禁用此用戶。
(8)用戶過期時(shí)間:此字段指定了用戶作廢的天數(shù),從1970年1月1日開始算起的天數(shù),如果這個(gè)字段的值為空,就表示該賬號(hào)永久可用,注意與第7個(gè)字段的區(qū)別。
(9)保留字段:目前為空,將來可能會(huì)用。
3. 用戶組文件/etc/group
該文件用于保存用戶組的所有信息,通過它可以更好地對(duì)系統(tǒng)中的用戶進(jìn)行管理。它對(duì)用戶分組來說是一種有效的手段,用戶組和用戶之間屬于多對(duì)多的關(guān)系,一個(gè)用戶可以屬于多個(gè)組,一個(gè)組也可以包含多個(gè)用戶。用戶登錄時(shí)默認(rèn)的組存放在/etc/passwd中。
此文件的格式也類似于/etc/passwd文件,字段如下:
用戶組名:用戶組密碼:用戶組標(biāo)識(shí)號(hào):組內(nèi)用戶列表
根據(jù)以下示例進(jìn)行分析:
root:x:0:
(1)用戶組名:可以由字母、數(shù)字和下劃線組成,用戶組名是唯一的,和用戶名一樣,不可重復(fù)。
(2)用戶組密碼:該字段存放的是用戶組加密后的密碼字段。這個(gè)字段一般很少使用,Linux系統(tǒng)的用戶組都沒有密碼,即這個(gè)字段一般為空。
(3)用戶組標(biāo)識(shí)號(hào):GROUP ID,簡稱GID,和用戶標(biāo)識(shí)號(hào)UID類似,也是一個(gè)整數(shù),用于唯一標(biāo)識(shí)一個(gè)用戶組。
(4)組內(nèi)用戶列表:屬于這個(gè)組的所有用戶的列表,不同用戶之間用逗號(hào)分隔,不能有空格。這個(gè)用戶組可能是用戶的主組,也可能是附加組。
-------------------------------------------
本文節(jié)選自《Red Hat Enterprise Linux 9 系統(tǒng)管理實(shí)戰(zhàn)》
本次內(nèi)容發(fā)布,獲得作者和出版社授權(quán),供讀者個(gè)人非商業(yè)目的使用。
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)