W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
設(shè)計Linux系統(tǒng)的初衷之一就是為了滿足多個用戶同時工作的需求,因此Linux系統(tǒng)必須具備很好的安全性。第1章在安裝RHEL 7操作系統(tǒng)時,特別要求設(shè)置root管理員密碼,這個root管理員就是存在于所有類UNIX系統(tǒng)中的超級用戶。它擁有最高的系統(tǒng)所有權(quán),能夠管理系統(tǒng)的各項功能,如添加/刪除用戶、啟動/關(guān)閉服務(wù)進程、開啟/禁用硬件設(shè)備等。雖然以root管理員的身份工作時不會受到系統(tǒng)的限制,但俗語講“能力越大,責(zé)任就越大”,因此一旦使用這個高能的root管理員權(quán)限執(zhí)行了錯誤的命令可能會直接毀掉整個系統(tǒng)。使用與否,確實需要好好權(quán)衡一下。
在學(xué)習(xí)時是否要使用root管理員權(quán)限來控制整個系統(tǒng)呢?面對這個問題,網(wǎng)絡(luò)上有很多文章建議以普通用戶的身份來操作—這是一個更安全也更“無責(zé)任”的回答。今天,劉遄老師就要冒天下之大不韙給出自己的心得—強烈推薦大家在學(xué)習(xí)時使用root管理員權(quán)限!
這種為root管理員正名的決絕態(tài)度在網(wǎng)絡(luò)中應(yīng)該還是很少見的,我之所以力薦root管理員權(quán)限,原因很簡單。因為在Linux的學(xué)習(xí)過程中如果使用普通用戶身份進行操作,則在配置服務(wù)之后出現(xiàn)錯誤時很難判斷是系統(tǒng)自身的問題還是因為權(quán)限不足而導(dǎo)致的;這無疑會給大家的學(xué)習(xí)過程徒增坎坷。更何況我們的實驗環(huán)境是使用VMware虛擬機軟件搭建的,可以將安裝好的系統(tǒng)設(shè)置為一次快照,這即便系統(tǒng)徹底崩潰了,您也可以在5秒鐘的時間內(nèi)快速還原出一臺全新的系統(tǒng),而不用擔(dān)心數(shù)據(jù)丟失。
總之,劉遄老師在培訓(xùn)時都推薦每位學(xué)生使用root管理員權(quán)限來學(xué)習(xí)Linux系統(tǒng),等到工作時再根據(jù)生產(chǎn)環(huán)境決定使用哪個用戶權(quán)限;這些僅與選擇相關(guān),而非技術(shù)性問題。
另外,很多圖書或培訓(xùn)機構(gòu)的老師會講到,Linux系統(tǒng)中的管理員就是root。這其實是錯誤的,Linux系統(tǒng)的管理員之所以是root,并不是因為它的名字叫root,而是因為該用戶的身份號碼即UID(User IDentification)的數(shù)值為0。在Linux系統(tǒng)中,UID就相當(dāng)于我們的身份證號碼一樣具有唯一性,因此可通過用戶的UID值來判斷用戶身份。在RHEL 7系統(tǒng)中,用戶身份有下面這些。
管理員UID為0:系統(tǒng)的管理員用戶。
系統(tǒng)用戶UID為1~999: Linux系統(tǒng)為了避免因某個服務(wù)程序出現(xiàn)漏洞而被黑客提權(quán)至整臺服務(wù)器,默認服務(wù)程序會有獨立的系統(tǒng)用戶負責(zé)運行,進而有效控制被破壞范圍。
普通用戶UID從1000開始:是由管理員創(chuàng)建的用于日常工作的用戶。
需要注意的是,UID是不能沖突的,而且管理員創(chuàng)建的普通用戶的UID默認是從1000開始的(即使前面有閑置的號碼)。
為了方便管理屬于同一組的用戶,Linux系統(tǒng)中還引入了用戶組的概念。通過使用用戶組號碼(GID,Group IDentification),我們可以把多個用戶加入到同一個組中,從而方便為組中的用戶統(tǒng)一規(guī)劃權(quán)限或指定任務(wù)。假設(shè)有一個公司中有多個部門,每個部門中又有很多員工。如果只想讓員工訪問本部門內(nèi)的資源,則可以針對部門而非具體的員工來設(shè)置權(quán)限。例如,可以通過對技術(shù)部門設(shè)置權(quán)限,使得只有技術(shù)部門的員工可以訪問公司的數(shù)據(jù)庫信息等。
另外,在Linux系統(tǒng)中創(chuàng)建每個用戶時,將自動創(chuàng)建一個與其同名的基本用戶組,而且這個基本用戶組只有該用戶一個人。如果該用戶以后被歸納入其他用戶組,則這個其他用戶組稱之為擴展用戶組。一個用戶只有一個基本用戶組,但是可以有多個擴展用戶組,從而滿足日常的工作需要。
useradd命令用于創(chuàng)建新的用戶,格式為“useradd [選項] 用戶名”。
可以使用useradd命令創(chuàng)建用戶賬戶。使用該命令創(chuàng)建用戶賬戶時,默認的用戶家目錄會被存放在/home目錄中,默認的Shell解釋器為/bin/bash,而且默認會創(chuàng)建一個與該用戶同名的基本用戶組。這些默認設(shè)置可以根據(jù)表5-1中的useradd命令參數(shù)自行修改。
表5-1 useradd命令中的用戶參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-d | 指定用戶的家目錄(默認為/home/username) |
-e | 賬戶的到期時間,格式為YYYY-MM-DD. |
-u | 指定該用戶的默認UID |
-g | 指定一個初始的用戶基本組(必須已存在) |
-G | 指定一個或多個擴展用戶組 |
-N | 不創(chuàng)建與用戶同名的基本用戶組 |
-s | 指定該用戶的默認Shell解釋器 |
下面我們創(chuàng)建一個普通用戶并指定家目錄的路徑、用戶的UID以及Shell解釋器。在下面的命令中,請注意/sbin/nologin,它是終端解釋器中的一員,與Bash解釋器有著天壤之別。一旦用戶的解釋器被設(shè)置為nologin,則代表該用戶不能登錄到系統(tǒng)中:
[root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)
groupadd命令用于創(chuàng)建用戶組,格式為“groupadd [選項] 群組名”。
為了能夠更加高效地指派系統(tǒng)中各個用戶的權(quán)限,在工作中常常會把幾個用戶加入到同一個組里面,這樣便可以針對一類用戶統(tǒng)一安排權(quán)限。創(chuàng)建用戶組的步驟非常簡單,例如使用如下命令創(chuàng)建一個用戶組ronny:
[root@linuxprobe ~]# groupadd ronny
usermod命令用于修改用戶的屬性,格式為“usermod [選項] 用戶名”。
前文曾反復(fù)強調(diào),Linux系統(tǒng)中的一切都是文件,因此在系統(tǒng)中創(chuàng)建用戶也就是修改配置文件的過程。用戶的信息保存在/etc/passwd文件中,可以直接用文本編輯器來修改其中的用戶參數(shù)項目,也可以用usermod命令修改已經(jīng)創(chuàng)建的用戶信息,諸如用戶的UID、基本/擴展用戶組、默認終端等。usermod命令的參數(shù)以及作用如表5-2所示。
表5-2 usermod命令中的參數(shù)及作用
參數(shù) | 作用 |
---|---|
-c | 填寫用戶賬戶的備注信息 |
-d -m | 參數(shù)-m與參數(shù)-d連用,可重新指定用戶的家目錄并自動把舊的數(shù)據(jù)轉(zhuǎn)移過去 |
-e | 賬戶的到期時間,格式為YYYY-MM-DD |
-g | 變更所屬用戶組 |
-G | 變更擴展用戶組 |
-L | 鎖定用戶禁止其登錄系統(tǒng) |
-U | 解鎖用戶,允許其登錄系統(tǒng) |
-s | 變更默認終端 |
-u | 修改用戶的UID |
大家不要被這么多參數(shù)嚇壞了。我們先來看一下賬戶linuxprobe的默認信息:
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
然后將用戶linuxprobe加入到root用戶組中,這樣擴展組列表中則會出現(xiàn)root用戶組的字樣,而基本組不會受到影響:
[root@linuxprobe ~]# usermod -G root linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
再來試試用-u參數(shù)修改linuxprobe用戶的UID號碼值。除此之外,我們還可以用-g參數(shù)修改用戶的基本組ID,用-G參數(shù)修改用戶擴展組ID。
[root@linuxprobe ~]# usermod -u 8888 linuxprobe
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
passwd命令用于修改用戶密碼、過期時間、認證信息等,格式為“passwd [選項] [用戶名]”。
普通用戶只能使用passwd命令修改自身的系統(tǒng)密碼,而root管理員則有權(quán)限修改其他所有人的密碼。更酷的是,root管理員在Linux系統(tǒng)中修改自己或他人的密碼時不需要驗證舊密碼,這一點特別方便。既然root管理員可以修改其他用戶的密碼,就表示完全擁有該用戶的管理權(quán)限。passwd命令中可用的參數(shù)以及作用如表5-3所示。
表5-3 passwd命令中的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-l | 鎖定用戶,禁止其登錄 |
-u | 解除鎖定,允許用戶登錄 |
--stdin | 允許通過標(biāo)準(zhǔn)輸入修改用戶密碼,如echo "NewPassWord" | passwd --stdin Username |
-d | 使該用戶可用空密碼登錄系統(tǒng) |
-e | 強制用戶在下次登錄時修改密碼 |
-S | 顯示用戶的密碼是否被鎖定,以及密碼所采用的加密算法名稱 |
接下來劉遄老師將演示如何修改用戶自己的密碼,以及如何修改其他人的密碼(修改他人密碼時,需要具有root管理員權(quán)限):
[root@linuxprobe ~]# passwd
Changing password for user root.
New password:此處輸入密碼值
Retype new password: 再次輸入進行確認
passwd: all authentication tokens updated successfully.
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe.
New password:此處輸入密碼值
Retype new password: 再次輸入進行確認
passwd: all authentication tokens updated successfully.
假設(shè)您有位同事正在度假,而且假期很長,那么可以使用passwd命令禁止該用戶登錄系統(tǒng),等假期結(jié)束回歸工作崗位時,再使用該命令允許用戶登錄系統(tǒng),而不是將其刪除。這樣既保證了這段時間內(nèi)系統(tǒng)的安全,也避免了頻繁添加、刪除用戶帶來的麻煩:
[root@linuxprobe ~]# passwd -l linuxprobe
Locking password for user linuxprobe.
passwd: Success
[root@linuxprobe ~]# passwd -S linuxprobe
linuxprobe LK 2017-12-26 0 99999 7 -1 (Password locked.)
[root@linuxprobe ~]# passwd -u linuxprobe
Unlocking password for user linuxprobe.
passwd: Success
[root@linuxprobe ~]# passwd -S linuxprobe
linuxprobe PS 2017-12-26 0 99999 7 -1 (Password set, SHA512 crypt.)
userdel命令用于刪除用戶,格式為“userdel [選項] 用戶名”。
如果我們確認某位用戶后續(xù)不再會登錄到系統(tǒng)中,則可以通過userdel命令刪除該用戶的所有信息。在執(zhí)行刪除操作時,該用戶的家目錄默認會保留下來,此時可以使用-r參數(shù)將其刪除。userdel命令的參數(shù)以及作用如表5-4所示。
表5-4 userdel命令的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-f | 強制刪除用戶 |
-r | 同時刪除用戶及用戶家目錄 |
下面使用userdel命令將linuxprobe用戶刪除,其操作如下:
[root@linuxprobe ~]# id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)
[root@linuxprobe ~]# userdel -r linuxprobe
[root@linuxprobe ~]# id linuxprobe
id: linuxprobe: no such user
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: