一、基本概念
1、基本介紹
linux作為一種多用戶的操作系統(tǒng)(服務(wù)器系統(tǒng)),允許多個(gè)用戶同時(shí)登錄到系統(tǒng)上,并響應(yīng)每個(gè)用戶的請(qǐng)求。任何需要使用操作系統(tǒng)的用戶,都需要一個(gè)系統(tǒng)賬號(hào),賬號(hào)分為:管理員賬號(hào)與普通用戶賬號(hào)。在Linux中,操作系統(tǒng)根據(jù)UID來判斷用!根據(jù)UID來判斷用戶!而不是用戶名!只要id為0就是管理員,哪怕有多個(gè)id為0 的賬號(hào);系統(tǒng)在新建賬號(hào)時(shí),會(huì)根據(jù)賬號(hào)類型,自動(dòng)分配遞增賬號(hào)的UID與GID (用戶身份編號(hào),組編號(hào)),也可自行分配。通常情況下,應(yīng)當(dāng)保證UID與GID唯一且不重復(fù)。
2、Linux的單用戶任務(wù)和多用戶任務(wù)
在Linux下,當(dāng)你登錄后,你也可以同時(shí)開啟很多的服務(wù)任務(wù)和進(jìn)程,而各自服務(wù)都會(huì)跑的很好卻對(duì)其他任務(wù)沒有任何影響,這種登錄一個(gè)用戶登錄系統(tǒng)執(zhí)行多個(gè)服務(wù)任務(wù)和進(jìn)程的情況,就稱為單用戶多任務(wù)。多用戶任務(wù)——有時(shí)可能是很多用戶同時(shí)用同一個(gè)系統(tǒng),如公司幾十個(gè)運(yùn)維人員,每臺(tái)機(jī)器都可以和被若干個(gè)運(yùn)維人員登錄部署或解決相關(guān)故障問題,但并不是所有的運(yùn)維人員都要做同一件事,所以就有了多任務(wù)、多用戶的情況。注:多用戶、多任務(wù)并不是大家同時(shí)擠到一起,在一臺(tái)機(jī)器的鍵盤和顯示器前來操作機(jī)器,多用戶可能是通過SSH客戶端工具等遠(yuǎn)程工具等遠(yuǎn)程登錄服務(wù)器來進(jìn)行,比如對(duì)服務(wù)器的運(yùn)程控制,只要具有相關(guān)用戶的權(quán)限,任何人都是可以上去操作訪問服務(wù)器。
3、Linux系統(tǒng)用戶角色劃分
用戶在系統(tǒng)中是分角色的,在Linux系統(tǒng)中,由于角色的不同,權(quán)限和所完成的任務(wù)也不同;值得注意的是用戶的角色是通過UID和GID識(shí)別的;特別是UID,在運(yùn)維工作中,一個(gè)UID是唯一標(biāo)識(shí)一個(gè)系統(tǒng)用戶的賬號(hào)。
用戶賬戶:
超級(jí)用戶root(0)
程序用戶(1~499)
普通用戶(500~65535)
超級(jí)用戶:
默認(rèn)是root用戶,其UID和GID均為0。在每臺(tái)unix/linux操作系統(tǒng)中都是唯一且真實(shí)存在的,通過它可以登錄系統(tǒng),可以操作系統(tǒng)中任何文件和命令,擁有最高的管理權(quán)限。在生產(chǎn)環(huán)境,一般禁止root賬號(hào)遠(yuǎn)程登錄SSH連接服務(wù)器,以加強(qiáng)系統(tǒng)安全。
普通用戶:
這類用戶一般是由具備系統(tǒng)管理員root的權(quán)限的運(yùn)維人員添加的
程序用戶:
與真實(shí)用戶區(qū)分開來,這類用戶的最大特點(diǎn)是安裝系統(tǒng)后默認(rèn)就會(huì)存在的,且默認(rèn)情況不能登錄系統(tǒng),它們是系統(tǒng)正常運(yùn)行必不可少的,
他們的存在主要是方便系統(tǒng)管理,滿足相應(yīng)的系統(tǒng)進(jìn)程的文件屬主的要求。例如系統(tǒng)默認(rèn)的bin、adm、nodoby、mAIl用戶等。由于服務(wù)器角色的不同,有部分用不到的系統(tǒng)服務(wù)被禁止開機(jī)執(zhí)行,因此,在做系統(tǒng)安全優(yōu)化時(shí),被禁止開機(jī)啟動(dòng)了的服務(wù)對(duì)應(yīng)的虛擬用戶也是可以處理掉的(刪除或注釋)。
4、用戶和用戶組介紹
二、用戶及用戶組配置文件介紹
在Linux中,萬物皆文件,所以用戶與組也以配置文件的形式保存在系統(tǒng)中,以下為用戶和組的主要配置文件詳解:
- /etc/passwd:用戶及其屬性信息(名稱、 UID、主組ID等)
- /etc/group:組及其屬性信息
- /etc/shadow:用戶密碼及其相關(guān)屬性
- /etc/gshadow:組密碼及其相關(guān)屬性
1、/etc/passwd詳解
作用:
用于存儲(chǔ)系統(tǒng)上的用戶賬戶信息。每一行代表一個(gè)用戶賬戶,包含了一些關(guān)于該用戶的基本信息。
每行格式:
username:password:UID:GID:GECOS:home directory:shell
解釋
1.username:用戶名,用于識(shí)別用戶。
2.password:加密后的用戶密碼,現(xiàn)在通常是一個(gè)占位符,實(shí)際的加密密碼保存在 /etc/shadow 文件中。
3.UID:用戶標(biāo)識(shí)號(hào),是一個(gè)唯一的數(shù)字,用于標(biāo)識(shí)用戶在系統(tǒng)中的身份。
4.GID:用戶所屬的組標(biāo)識(shí)號(hào),指示用戶屬于哪個(gè)主要的用戶組。
5.GECOS:一般的用戶信息,包括用戶的全名、電話號(hào)碼、地址等。
6.home directory:用戶的主目錄,用戶登錄時(shí)所在的默認(rèn)目錄。
7.shell:用戶登錄時(shí)使用的默認(rèn)shell,用于執(zhí)行命令和交互。
每當(dāng)創(chuàng)建一個(gè)新用戶時(shí),系統(tǒng)會(huì)將該用戶的信息添加到 /etc/passwd 文件中。用戶可以使用該文件中的信息來驗(yàn)證身份、分配資源和執(zhí)行其他權(quán)限控制操作。
2、/etc/group詳解
作用:
用于存儲(chǔ)系統(tǒng)上的用戶組信息。每一行代表一個(gè)用戶組,包含了一些關(guān)于該用戶組的基本信息。
每行格式:
groupname:password:GID:userlist
解釋:
1.groupname:用戶組名,用于識(shí)別用戶組。
2.password:用戶組密碼,現(xiàn)在通常是一個(gè)占位符,實(shí)際的加密密碼保存在 /etc/gshadow 文件中。
3.GID:用戶組標(biāo)識(shí)號(hào),是一個(gè)唯一的數(shù)字,用于標(biāo)識(shí)用戶組在系統(tǒng)中的身份。
4.userlist:屬于該用戶組的用戶列表,多個(gè)用戶名之間用逗號(hào)分隔。
每當(dāng)創(chuàng)建一個(gè)新用戶組時(shí),系統(tǒng)會(huì)將該用戶組的信息添加到 /etc/group 文件中。用戶組可以用于管理和組織用戶,例如分配文件和目錄的訪問權(quán)限,以及在用戶之間共享資源。
3、/etc/shadow詳解
用于存儲(chǔ)系統(tǒng)用戶的加密密碼。它包含了用戶賬戶的散列密碼和其他與安全相關(guān)的信息。
每行格式:
username:password:lastchanged:minage:maxage:warnexpire:inactive:expire:reserved
解釋:
1.username:用戶的登錄名。
2.password:用戶的加密密碼?,F(xiàn)在通常是一個(gè)散列值,實(shí)際的密碼保存在 /etc/passwd 文件中。
3.lastchanged:用戶密碼上次更改的日期,以自UTC 1970年1月1日以來的天數(shù)計(jì)算。
4.minage:用戶密碼被更改之前必須保持的最小天數(shù)。
5.maxage:用戶密碼過期之前的最大天數(shù)。
6.warnexpire:在密碼過期之前給用戶的警告天數(shù)。
7.inactive:在用戶賬戶被禁用之前的非活動(dòng)天數(shù)。
8.expire:用戶賬戶的過期日期,以自UTC 1970年1月1日以來的天數(shù)計(jì)算。
9.reserved:保留字段,目前未使用。
/etc/shadow 文件通常只對(duì)特定的權(quán)限用戶可讀,以保護(hù)用戶密碼的安全性。只有具備特定權(quán)限的用戶才能修改、查看或操作該文件。
4、/etc/gshadow詳解
用于存儲(chǔ)系統(tǒng)用戶組的加密密碼。它類似于 /etc/shadow 文件,但是用于用戶組而不是用戶。
每行格式
groupname:encryptedpassword:administrators:members
解釋:
1.groupname:用戶組的名稱。
2.encryptedpassword:用戶組的加密密碼。通常是一個(gè)散列值,實(shí)際密碼通常不直接存儲(chǔ)在此文件中。
3.administrators:具有管理權(quán)限的用戶列表,以逗號(hào)分隔。
4.members:屬于該用戶組的用戶列表,以逗號(hào)分隔。
三、用戶管理
1、添加用戶
語法:useradd 選項(xiàng) 用戶名
選項(xiàng):
-u 指定用戶的uid
-g 指定用戶的gid
-G 指定附屬組,可以有多個(gè), 但是這些附屬組必須是系統(tǒng)內(nèi)已經(jīng)存在的
-c 指定描述
-d 指定家目錄
-M 不建立家目錄
-s 指定shell
-e 指定用戶過期時(shí)間, 日期
-f 指定用戶過期時(shí)間, 天數(shù)
注意:若不帶任何選項(xiàng)默認(rèn)創(chuàng)建與用戶同名的用戶主組和家目錄,用戶的用戶主組在passwd文件查看,用戶附加組在group文件查看;
2、修改用戶
語法:usermod 選項(xiàng) 用戶名
選項(xiàng):
-g 指定用戶的用戶主組,選項(xiàng)值為id號(hào)或組名
-G 指定用戶的用戶附加組,選項(xiàng)值為id號(hào)或組名
-u 指定用戶的uid(不指定默認(rèn)從500開始向后分配)
-l 修改用戶的用戶名
3、設(shè)置密碼
語法:passwd 用戶名
選項(xiàng):
-k,--keep-tokens 保留未過期的認(rèn)證令牌
-d,--delete 刪除指定賬戶的密碼(僅限r(nóng)oot)
-l,--lock 鎖定指定帳戶的密碼(僅限r(nóng)oot)
-u,--unlock 解鎖指定賬戶的密碼(僅限r(nóng)oot用戶)
-e,--expire 指定指定賬戶的密碼過期(僅限r(nóng)oot)
-f,--force 強(qiáng)制操作
-x,--maximum=DAYS 最大密碼生存期(僅限r(nóng)oot用戶)
-n,--minimum=DAYS 密碼最短生存期(僅限r(nóng)oot用戶)
-w,--warning=DAYS 用戶在密碼過期前收到警告的天數(shù)(僅限r(nóng)oot用戶)
-i,--inactive=DAYS 密碼過期后禁用帳戶的天數(shù)(僅限r(nóng)oot用戶)
-S,--status 報(bào)告指定帳戶的密碼狀態(tài)(僅限r(nóng)oot)
回車后即可輸入新密碼,需要輸入兩次密碼且沒有輸入提示,修改密碼也是這個(gè)語法
注意:沒有密碼的用戶是不能登錄Linux系統(tǒng)的,沒有設(shè)置密碼的新創(chuàng)建用戶處于鎖定狀態(tài),需要設(shè)置密碼后才能登錄系統(tǒng);
免交互修改密碼:
echo "密碼" | passwd --stdin 用戶名
4、切換用戶
語法:su [用戶名]
若不指定用戶名,默認(rèn)切換為root用戶
注意:root用戶切換到其他用戶不需要密碼,反之需要密碼;切換用戶前后當(dāng)前目錄不變;普通用戶不能進(jìn)入root用戶家目錄,反之可以;
5、刪除用戶
語法:
userdel 選項(xiàng) 用戶名
選項(xiàng):
-r 表示刪除用戶的同時(shí)刪除其家目錄
四、用戶組管理
1、用戶組添加
語法:
groupadd 選項(xiàng) 用戶組名
選項(xiàng):
-g 指定用戶組的id,若不指定默認(rèn)從500開始向后分配
2、用戶組修改
語法:
groupmod 選項(xiàng) 用戶組名
選項(xiàng):
-g 指定用戶組id
-n 修改用戶組名稱
3、用戶組刪除
語法:groupdel 用戶組名
注意:若該用戶組是某個(gè)用戶的主組時(shí)無法被刪除,除非將用戶移出該用戶組;