Linux系統(tǒng)中的用戶是分角色的,用戶的角色是由UID和GID來(lái)識(shí)別的(也就是說(shuō)系統(tǒng)是識(shí)別的是用戶的UID、GID,而非用戶用戶名),一個(gè)UID是唯一(系統(tǒng)中唯一如同身份證一樣)用來(lái)標(biāo)識(shí)系統(tǒng)的用戶賬號(hào)(用戶名)。
創(chuàng)新互聯(lián)是一家專業(yè)提供鯉城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為鯉城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
文件的用戶與用戶組分為超級(jí)管理員,普通用戶和系統(tǒng)用戶。
1)超級(jí)管理員的UID=0,GID=0,也可以這么說(shuō)系統(tǒng)只要是識(shí)別出某個(gè)用戶的UID\GID都為0時(shí),那么這個(gè)用戶系統(tǒng)就認(rèn)為是超級(jí)管理員。
2)普通用戶(管理員添加的),默認(rèn)它的UID\GID是從500-65535,權(quán)限很小,只能操作自己的家目錄中文件及子目錄(注:nobody它的UID\GID是65534)。
3)系統(tǒng)用戶,也稱虛擬用戶,也就是安裝系統(tǒng)時(shí)就默認(rèn)存在的且不可登陸系統(tǒng),它們的UID\GID是1-499。
我們可以通過(guò)cat /etc/passwd命令來(lái)查看所有的用戶信息,例如下圖,第三列是UID,第四列是GID:
創(chuàng)建用戶
useradd user1 創(chuàng)建用戶user1
useradd -e 12/30/2021 user2 創(chuàng)建用戶user2,有效期到2021-12-30
設(shè)置用戶密碼
passwd user1 設(shè)置密碼,有設(shè)置密碼的用戶不能用
這里設(shè)置密碼時(shí)可能會(huì)碰到密碼保護(hù)機(jī)制問(wèn)題,這里需要注釋掉保護(hù)機(jī)制的問(wèn)題
這個(gè)時(shí)候需要在編輯/etc/pam.d/system-auth文件,將其中的password requisite
和password sufficient兩行注釋掉,如下圖:
創(chuàng)建用戶組
groupadd –g 888 users 創(chuàng)建一個(gè)組users,其GID為888
groupadd users 不用g參數(shù),使用默認(rèn)的組ID
命令 gpasswd為組添加用戶
只有root和組管理員能夠改變組的成員:
gpasswd –a user1 users 把 user1加入users組
gpasswd –d user1 users 把 user1退出users組
命令groupmod修改組
groupmod –n user2 user1 修改組名user1為user2
groupdel刪除組
groupdel users 刪除組users
真正從安全性角度上來(lái)考慮的話,是要控制用戶一定執(zhí)行命令的權(quán)限,也就是哪些用戶可以執(zhí)行哪些命令,不可以執(zhí)行哪些命令,因此也就有了sudo這個(gè)應(yīng)用,對(duì)于sudo提權(quán),也就是修改/etc/sudoers的配置文件。
Linux系統(tǒng)中,每個(gè)用戶的ID都有兩種,即用戶ID(User ID,簡(jiǎn)稱UID)和組ID(Group
ID,簡(jiǎn)稱GID),這與文件擁有者和擁有群組兩種屬性所對(duì)應(yīng)。
文章開(kāi)頭也提到了,Linux系統(tǒng)并不認(rèn)識(shí)我們的用戶名和密碼,那問(wèn)題來(lái)了,文件是如何判別它的擁有者名稱及群組名稱的呢?
每個(gè)文件都有自己的擁有者ID和群組ID,在顯示文件屬性時(shí),系統(tǒng)會(huì)根據(jù)/etc/passwd和/etc/group文件中的內(nèi)容,分別找到UID和GID所對(duì)應(yīng)的用戶名和群組名,最終顯示出來(lái)。
在/etc/passwd文件中,利用UID可以找到所對(duì)應(yīng)的用戶名,在/etc/group文件中,利用GID可以找到所對(duì)應(yīng)的群組名。
可以做個(gè)小實(shí)驗(yàn),在Linux操作系統(tǒng)中,常用的有兩個(gè)賬戶,分別為root超級(jí)管理員賬戶和普通賬戶,我們可以先使用root賬號(hào)登錄并執(zhí)行命令vim
/etc/passwd,在該文件中找到普通用戶并將其UID隨意改一個(gè)數(shù)字,這是你會(huì)發(fā)現(xiàn),當(dāng)你查看普通賬戶所擁有的文件時(shí),你會(huì)發(fā)現(xiàn)所有文件的擁有者并不是普通用戶,而是數(shù)字。
一般情況下,當(dāng)?shù)卿汱inux操作系統(tǒng)后,會(huì)先尋找/etc/passwd是否有輸入賬號(hào),如果沒(méi)有,則跳出,如果有,則讀取對(duì)應(yīng)的UID與GID,隨后進(jìn)入/etc/shadow核對(duì)密碼,一切完成后,則進(jìn)入shell管控。
由此可見(jiàn),UID與GID在日常的賬戶管理中,發(fā)揮著非常重要的作用,因?yàn)橐徊恍⌒木涂赡茉L問(wèn)不了自己的文件,所以溫馨提示大家,不要隨便改動(dòng)自己的/etc/passwd與/etc/group文件。
1、更改用戶gid的命令是groupmod,使用groupmod修改組的gid。
2、使用chgrp命令修改原來(lái)用戶文件和目錄的屬組。
3、修改對(duì)應(yīng)用戶所屬的組的gid,保存。
root用戶擁有極高的系統(tǒng)所有權(quán),能夠管理系統(tǒng)的各項(xiàng)功能,真正讓root成為“超級(jí)用戶”的原因是它的UID值。
每個(gè)用戶都有對(duì)應(yīng)的 唯一UID值 ,可以分成三類用戶:
用戶的UID保存在 /etc/passwd 文件中,而賬戶密碼保存在 /etc/shadow 文件中。
例如,輸入命令 $ cat /etc/passwd ,可以查看所有的用戶信息,下面是三類用戶的例子:
第一行為root超級(jí)用戶,第二行為ftp系統(tǒng)用戶,第三行為test普通用戶。
每行用戶信息都以 “:” 作為分隔符,劃分為7個(gè)字段,每個(gè)字段所表示的含義如下:
用戶名:密碼:UID:GID:描述性信息:主目錄:默認(rèn)Shell
其中,默認(rèn)shell為 /bin/bash 表示可以登錄,為 /sbin/nologin 時(shí)表示不可以登錄。
GID 是用戶組的編號(hào),可以將多個(gè)用戶加入到某個(gè)組中,方便指派任務(wù)或工作。
每個(gè)用戶在被創(chuàng)建時(shí)均會(huì)創(chuàng)建一個(gè)默認(rèn)組(其GID與UID相同,叫作基本組或初始組),而后加入的組叫作擴(kuò)展組或附加組。
用戶組名和GID則保存在 /etc/group 文件中。
輸入命令 $ cat /etc/group 可以查看所用用戶組的信息,例如:
每行的用戶組的信息都以 “:” 作為分割符,劃分為4個(gè)字段,每個(gè)字段所表示的含義如下:
組名:密碼:GID:該用戶組中的用戶列表
其中,組密碼保存在 /etc/gshadow 文件中,用戶組密碼一般沒(méi)用;組中的用戶列表只包括附加用戶,如果該組是某個(gè)用戶的初始組,則這個(gè)用戶不會(huì)出現(xiàn)在這個(gè)用戶列表中。