Linux系統(tǒng)應(yīng)用基礎(chǔ)教程 第3版 課件 第3、4章 用戶登錄與賬戶管理、文件系統(tǒng)管理_第1頁(yè)
Linux系統(tǒng)應(yīng)用基礎(chǔ)教程 第3版 課件 第3、4章 用戶登錄與賬戶管理、文件系統(tǒng)管理_第2頁(yè)
Linux系統(tǒng)應(yīng)用基礎(chǔ)教程 第3版 課件 第3、4章 用戶登錄與賬戶管理、文件系統(tǒng)管理_第3頁(yè)
Linux系統(tǒng)應(yīng)用基礎(chǔ)教程 第3版 課件 第3、4章 用戶登錄與賬戶管理、文件系統(tǒng)管理_第4頁(yè)
Linux系統(tǒng)應(yīng)用基礎(chǔ)教程 第3版 課件 第3、4章 用戶登錄與賬戶管理、文件系統(tǒng)管理_第5頁(yè)
已閱讀5頁(yè),還剩286頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章用戶登錄與賬戶管理Linux作為多用戶、多任務(wù)的操作系統(tǒng),其系統(tǒng)資源是所有用戶共享的。任何要使用系統(tǒng)資源者必須先在系統(tǒng)內(nèi)登記、注冊(cè),即開(kāi)設(shè)用戶賬戶,該賬戶包含用戶名、口令、所用的shell、使用權(quán)限等等;為了計(jì)算機(jī)系統(tǒng)的安全,Linux會(huì)對(duì)每一個(gè)要求進(jìn)入系統(tǒng)的用戶驗(yàn)證他們的用戶名和口令,如果驗(yàn)證通過(guò)則用戶登錄成功,否則系統(tǒng)拒絕登錄。3.1用戶登錄根據(jù)用戶在本地終端還是通過(guò)網(wǎng)絡(luò)登錄Linux系統(tǒng),分為用戶的終端登錄和遠(yuǎn)程登錄。這里的網(wǎng)絡(luò)可以是局域網(wǎng),如學(xué)校計(jì)算機(jī)實(shí)驗(yàn)室;也可以是網(wǎng)際網(wǎng),如Internet。3.1.1終端登錄當(dāng)成功啟動(dòng)系統(tǒng)后,如果系統(tǒng)運(yùn)行級(jí)為5,則登錄時(shí)會(huì)看到如圖3-1所示界面;如果運(yùn)行級(jí)為3,則登錄時(shí)會(huì)看到如圖3-2所示界面。用戶必須先后輸入用戶名、口令才可以登錄Linux系統(tǒng)。圖3-1運(yùn)行級(jí)5的登錄界面圖3-2運(yùn)行級(jí)3的登錄界面如果以超級(jí)用戶的root賬戶登錄,則終端提示符為#。如果以普通用戶登錄,則終端提示符為$。在Linux系統(tǒng)中超級(jí)用戶擁有最高權(quán)限,例如、可以刪除、修改系統(tǒng)中所有的目錄和文件;而且在命令方式下刪除的內(nèi)容是不可恢復(fù)的。為了系統(tǒng)安全、避免由于誤操作帶來(lái)的損失,建議若非系統(tǒng)管理需要,一般不要以超級(jí)用戶的root賬戶登錄。Linux系統(tǒng)提供了六個(gè)虛擬控制臺(tái)終端,每個(gè)虛擬終端都可以登錄系統(tǒng)。這六個(gè)虛擬終端之間用組合鍵Ctrl+Alt+Fx進(jìn)行切換,F(xiàn)x表示F1到F6鍵。如果系統(tǒng)運(yùn)行級(jí)是5,則任何時(shí)候要返回到圖形界面只要按Ctrl+Alt+F1即可。3.1.2遠(yuǎn)程登錄所謂“遠(yuǎn)程登錄”是指用戶在某一臺(tái)計(jì)算機(jī)上通過(guò)網(wǎng)絡(luò)登錄其他聯(lián)網(wǎng)的計(jì)算機(jī)系統(tǒng),使用該系統(tǒng)中的資源,如執(zhí)行命令、查找文件等,以達(dá)到資源共享的目的。相互連通的計(jì)算機(jī)可以是處于同一個(gè)局域網(wǎng)、城域網(wǎng)和廣域網(wǎng),甚至世界上任何一臺(tái)連接到Internet的計(jì)算機(jī)。當(dāng)用戶發(fā)出遠(yuǎn)程登錄請(qǐng)求時(shí),Linux系統(tǒng)會(huì)像在本地終端登錄一樣要求用戶輸入用戶名和口令;一旦登錄成功,如果你有足夠的權(quán)限、你的計(jì)算機(jī)就像遠(yuǎn)程哪臺(tái)計(jì)算機(jī)的終端一樣,你通過(guò)鍵盤所發(fā)出的命令,就會(huì)在該遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、執(zhí)行的結(jié)果會(huì)通過(guò)網(wǎng)絡(luò)顯示在你的顯示器上。在Linux操作系統(tǒng)中,實(shí)現(xiàn)遠(yuǎn)程登錄的命令主要有:telnet、rsh、rlogin和ssh等,它們要在系統(tǒng)提供相應(yīng)服務(wù)的基礎(chǔ)上使用;換句話說(shuō)、要使用遠(yuǎn)程登錄必須先開(kāi)啟所用遠(yuǎn)程登錄命令對(duì)應(yīng)的服務(wù),例如、要使用telnet命令就要先開(kāi)啟系統(tǒng)的telnet服務(wù),CentOS7默認(rèn)不安裝它們,但其軟件包存在,而rlogin服務(wù)由于安全性問(wèn)題ContOS不在支持了;有關(guān)安裝telnet服務(wù)具體參見(jiàn)第九章配置telnet服務(wù)一節(jié)。一般這些系統(tǒng)服務(wù)沒(méi)有必要全部開(kāi)啟,這樣既浪費(fèi)系統(tǒng)資源、造成運(yùn)行速度降低又可能留下安全隱患,可以根據(jù)實(shí)際使用哪些命令來(lái)開(kāi)啟相關(guān)的系統(tǒng)服務(wù)。有關(guān)系統(tǒng)服務(wù)的查看、開(kāi)啟和關(guān)閉請(qǐng)參閱第二章的有關(guān)章節(jié)。本章僅僅介紹遠(yuǎn)程登錄的使用,不涉及遠(yuǎn)程登錄的安全問(wèn)題。3.1.2.1telnet命令telnet命令是最常用的遠(yuǎn)程登錄命令,但是它只能在基于終端的環(huán)境下使用,即要么在虛擬控制臺(tái)終端上使用、要么在XWindow系統(tǒng)的終端窗口中使用。

telnet命令的選項(xiàng)和參數(shù)很多,但在實(shí)際使用中往往只要用到其基本用法。這里我們先介紹如何最基本地使用該命令,然后給出該命令的完整用法。

基本用法: $telnethost

其中,host是你要登錄到的遠(yuǎn)程計(jì)算機(jī)的名字或IP地址。以下是使用telnet命令基本用法的示例:[root@localhostroot]#telnetTrying...Connectedto.Escapecharacteris'^]'.Kernel3.10.0-957.el7.x86_64onanx86_64login:zxjPassword:Lastlogin:MonAug1216:55:38from::ffff:[zxj@localhostzxj]$cd/[zxj@localhost/]$lsbindevhome lib64 mnt proc run srv tmp varbootetclib media opt root sbin syssur[zxj@localhost/]$cd/home[zxj@localhosthome]$lszxj[zxj@localhosthome]$logoutConnectionclosedbyforeignhost.[root@localhostroot]#

在這個(gè)示例中,使用telnet命令遠(yuǎn)程登錄到IP地址為的計(jì)算機(jī)上;當(dāng)連接成功后顯示Linux的內(nèi)核版本號(hào)和適用的CPU架構(gòu),并要求用戶輸入用戶名和口令。如果用戶超過(guò)一定的時(shí)間沒(méi)有輸入,則系統(tǒng)自動(dòng)斷開(kāi)連接。如果用戶輸入的用戶名和口令正確,則登錄系統(tǒng)成功并自動(dòng)進(jìn)入該用戶目錄。這時(shí)用戶的計(jì)算機(jī)就像遠(yuǎn)程計(jì)算機(jī)的一個(gè)終端,根據(jù)用戶所擁有的權(quán)限就可以執(zhí)行相應(yīng)的命令。例如、切換到根目錄下、執(zhí)行l(wèi)s命令時(shí)會(huì)看到在遠(yuǎn)程計(jì)算機(jī)上顯示的目錄和文件就像在自己計(jì)算機(jī)終端上登錄的一樣。當(dāng)完成所需要的操作后,使用logout命令退出遠(yuǎn)程登錄,即可關(guān)閉與遠(yuǎn)程計(jì)算機(jī)的連接,回到自己的系統(tǒng)中。實(shí)際上,telnet命令是TELNET協(xié)議的用戶接口。

完整用法:telnet[-468EFKLacdfrx][-Xauthtype][-bhostalias][-eescapechar][-krealm][-luser][-ntracefile][host[port]]如果telnet命令不帶任何命令選項(xiàng),則進(jìn)入telnet命令模式、顯示telnet>提示符,執(zhí)行?或help命令可以查詢所有可用的命令;執(zhí)行?命令名或help命令名,則顯示該命令的在線幫助信息。如果主機(jī)名解析為多個(gè)IP地址,telnet將嘗試與每個(gè)地址建立連接,直到其中一個(gè)成功或不再留下地址為止。表3-1列出了telnet命令的選項(xiàng)和說(shuō)明。命令選項(xiàng)選項(xiàng)說(shuō)明-4強(qiáng)制按IPv4地址解析-6強(qiáng)制按IPv6地址解析-7在輸入和輸出上清除第8位。默認(rèn)情況下,Telnet是清除第8位的,除非被強(qiáng)制,否則不發(fā)送TELNETBINARY選項(xiàng)。-8允許使用8位的操作,這將使輸入與輸出都使用TELNETBINARY選項(xiàng)。默認(rèn)情況下telnet不使用8位的操作-E禁止escape(轉(zhuǎn)義)字符的功能,即將escape字符設(shè)為空字符-F如果使用的是kerberosv5身份驗(yàn)證,-f選項(xiàng)允許把本地主機(jī)的認(rèn)證數(shù)據(jù)上傳到遠(yuǎn)程主機(jī)。-K不自動(dòng)登錄遠(yuǎn)程主機(jī)-L允許輸出使用8位操作,這使輸出使用BINARY選項(xiàng)。-Xatype禁用身份驗(yàn)證的類型-a嘗試自動(dòng)登錄。如果遠(yuǎn)程系統(tǒng)支持,它將通過(guò)環(huán)境選項(xiàng)的用戶變量發(fā)送用戶名。使用的名稱是getlogin(2)返回的當(dāng)前用戶的名稱(如果它與當(dāng)前用戶ID一致),否則它就是與用戶ID關(guān)聯(lián)的名稱。-bhostalias在本地套接字上使用bind(2)將其綁定到別名地址(請(qǐng)參閱ifconfig(8)和“別名”說(shuō)明符),或者綁定到另一個(gè)接口的地址,而不是connect(2)自然選擇的地址。當(dāng)不希望(或不可能)連接到使用IP地址進(jìn)行身份驗(yàn)證和服務(wù)器重新配置的服務(wù)時(shí),這將非常有用。-c禁用讀取用戶的.telnetrc文件。(參見(jiàn)手冊(cè)頁(yè)上的toggleskiprc命令。)-d啟動(dòng)調(diào)試(debug)模式-eesccapechar設(shè)置escape(轉(zhuǎn)義)字符。如果使用該項(xiàng)參數(shù)卻沒(méi)有指定escape字符,則telnet指令將不會(huì)使用escape字符。-f與-F參數(shù)相同-krealm使用Kerberos認(rèn)證時(shí),加上這個(gè)參數(shù)讓遠(yuǎn)程主機(jī)采用指定的領(lǐng)域名稱,而不是該主機(jī)的域名-luser指定要登錄遠(yuǎn)程主機(jī)的用戶名稱。如果沒(méi)有使用該參數(shù),則telnet會(huì)要求輸入登錄的用戶名。該參數(shù)隱含了-a參數(shù)-ntracefile指定文件記錄相關(guān)信息-r使用類似rlogin命令的用戶界面。在這種模式中,除非使用參數(shù)-e改變,否則預(yù)設(shè)的escape字符是“~”-x啟用數(shù)據(jù)流加密。當(dāng)該參數(shù)使用時(shí),如果無(wú)法通過(guò)認(rèn)證或加密數(shù)據(jù)無(wú)法打開(kāi)則telnet將退出。host指定遠(yuǎn)程主機(jī)的名稱、別名或IP地址port指定遠(yuǎn)程主機(jī)的端口號(hào)。如果不使用端口號(hào),則telnet使用缺省的端口號(hào)為23表3-1telnet命令選項(xiàng)及說(shuō)明3.1.2.2rlogin命令

由于網(wǎng)絡(luò)傳輸安全的原因,CentOS7安裝后并沒(méi)有rlogin軟件包,但是有些時(shí)候在網(wǎng)絡(luò)中用rlogin還是比較方便,所以在CentOS7下允許通過(guò)配置rsh服務(wù)來(lái)啟用rlogin的功能。閱讀本小節(jié)時(shí)要確保在第九章9。X小節(jié)的rsh服務(wù)配置過(guò),否則沒(méi)有rlogin命令!rlogin命令與telnet命令無(wú)論在使用方法還是選項(xiàng)功能上都非常類似;它也是用來(lái)在遠(yuǎn)程計(jì)算機(jī)上登錄。如果登錄成功,就可以在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行該注冊(cè)賬戶權(quán)限所允許的任何操作?;居梅ǎ? $rloginrhost

其中,rhost是你要登錄到的遠(yuǎn)程計(jì)算機(jī)的名字或IP地址。

完整用法: rlogin[-8EKLdx][-echar][-lusername]host

從rlogin命令的完整用法可以看到,該命令中的host參數(shù)是必需的,代表遠(yuǎn)程主機(jī)名或IP地址;其他的是命令選項(xiàng)且是可選的。表3-2列出了rlogin命令的選項(xiàng)和說(shuō)明。命令選項(xiàng)選項(xiàng)說(shuō)明-8任何時(shí)候都允許8位的數(shù)據(jù)輸入通路。如果不使用該參數(shù),則輸入數(shù)據(jù)中的奇偶校驗(yàn)位將被刪除,除非遠(yuǎn)程計(jì)算機(jī)的啟動(dòng)和停止字符不是Ctrl-S和Ctrl-Q。8位模式是默認(rèn)的。-E阻止任何字符被當(dāng)作escape字符。當(dāng)該參數(shù)與-8參數(shù)一起使用時(shí),將提供一個(gè)完整的透明連接。-echar設(shè)置轉(zhuǎn)義字符為char。默認(rèn)的轉(zhuǎn)義字符為“~”。char可以是一個(gè)普通的字符,也可以是用八進(jìn)制ASCII碼形式定義的字符。-d打開(kāi)TCPsocket的socket調(diào)試開(kāi)關(guān)-krealm使用Kerberos認(rèn)證時(shí),加上這個(gè)參數(shù)讓遠(yuǎn)程主機(jī)采用指定的領(lǐng)域名稱,而不是該主機(jī)的域名-x打開(kāi)DES加密程序,對(duì)rlogin會(huì)話傳輸?shù)臄?shù)據(jù)進(jìn)行加密。使用該參數(shù)會(huì)影響系統(tǒng)的響應(yīng)時(shí)間和CPU利用率,但增加了通信的安全性-L使rlogin的會(huì)話按litout模式運(yùn)行。參見(jiàn)tty用戶手冊(cè)-lusername指定要登錄遠(yuǎn)程主機(jī)的用戶名稱。如果沒(méi)有使用該參數(shù),則rlogin會(huì)使用該用戶在本地計(jì)算機(jī)上的用戶名作為登錄到遠(yuǎn)程計(jì)算機(jī)上所用的用戶名。因此、該參數(shù)省略時(shí),系統(tǒng)不要求輸入登錄的用戶名,而只要求輸入口令表3-2rlogin命令選項(xiàng)及說(shuō)明該版本的rlogin命令與其它版本的rlogin命令在選項(xiàng)個(gè)數(shù)和功能上有較大的差別。3.1.2.3rsh命令

由于該命令存在目前還難以解決的bug的原因,CentOS7安裝后并沒(méi)有安裝rsh軟件包,但是有些時(shí)候在網(wǎng)絡(luò)中用rsh執(zhí)行遠(yuǎn)程計(jì)算機(jī)上的shell程序還是比較方便,所以在CentOS7通過(guò)配置rsh服務(wù)來(lái)啟用rsh的功能。閱讀本小節(jié)時(shí)要確保在第九章9。X小節(jié)的rsh服務(wù)配置過(guò),否則沒(méi)有rsh命令!如圖3-3所示。圖3-3未配置rsh服務(wù) rsh命令用來(lái)啟動(dòng)遠(yuǎn)程計(jì)算機(jī)上的shell并讓該shell執(zhí)行權(quán)限范圍內(nèi)指定的命令。

基本用法: $rshhost[command]

其中,host是你要登錄到的遠(yuǎn)程計(jì)算機(jī)的名字或IP地址,而command為要遠(yuǎn)程計(jì)算機(jī)shell執(zhí)行的命令。如果省略了參數(shù)command,則rsh命令將調(diào)用rlogin命令登錄到遠(yuǎn)程計(jì)算機(jī)上。

完整用法: rsh[-Kdnx][-lusername]host[command]從rsh命令的完整用法可以看到,該命令中的host參數(shù)是必需的,其他的是命令選項(xiàng)且是可選的。表3-3列出了rsh命令的選項(xiàng)和說(shuō)明。表3-3rsh命令選項(xiàng)及說(shuō)明命令選項(xiàng)選項(xiàng)說(shuō)明-lusername指定要登錄遠(yuǎn)程主機(jī)的用戶名稱。如果沒(méi)有使用該參數(shù),則rlogin會(huì)使用該用戶在本地計(jì)算機(jī)上的用戶名作為登錄到遠(yuǎn)程計(jì)算機(jī)上所用的用戶名。因此、該參數(shù)省略時(shí),系統(tǒng)不要求輸入登錄的用戶名,而只要求輸入口令。-n把輸入的命令重定向到名為/dev/null的特殊的設(shè)備。-d打開(kāi)TCPsocket的socket調(diào)試開(kāi)關(guān)-krealm請(qǐng)求rsh獲得在指定區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可,而不是獲得由krb_relmofhost(3)確定的遠(yuǎn)程主機(jī)區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可。-x對(duì)網(wǎng)絡(luò)會(huì)話傳輸?shù)臄?shù)據(jù)進(jìn)行加密。 rsh命令連接指定的遠(yuǎn)程計(jì)算機(jī),并在它上面執(zhí)行指定的命令。rsh命令將本地計(jì)算機(jī)上的標(biāo)準(zhǔn)輸入復(fù)制到遠(yuǎn)程計(jì)算機(jī)的標(biāo)準(zhǔn)輸入,因此在本地計(jì)算機(jī)上可以輸入在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行命令所需要的輸入數(shù)據(jù)。而且、rsh命令還將遠(yuǎn)程計(jì)算機(jī)上的標(biāo)準(zhǔn)輸出復(fù)制到本地計(jì)算機(jī)的標(biāo)準(zhǔn)輸出中、將遠(yuǎn)程計(jì)算機(jī)上的標(biāo)準(zhǔn)錯(cuò)誤輸出復(fù)制到本地計(jì)算機(jī)的標(biāo)準(zhǔn)錯(cuò)誤輸出中,因此在本地計(jì)算機(jī)上就可以看到遠(yuǎn)程計(jì)算機(jī)上命令執(zhí)行的情況。此外、rsh命令還將本地計(jì)算機(jī)的中斷、退出和終止信號(hào)傳送到遠(yuǎn)程計(jì)算機(jī),以控制遠(yuǎn)程計(jì)算機(jī)上命令的執(zhí)行。當(dāng)指定的命令在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行完時(shí),rsh命令就正常終止。

在rsh命令中,如果shell元字符沒(méi)有用引號(hào)括起來(lái),則表示對(duì)本地計(jì)算機(jī)進(jìn)行操作;如果用引號(hào)括起來(lái),則表示對(duì)遠(yuǎn)程計(jì)算機(jī)進(jìn)行操作。所謂元字符是指對(duì)shell而言有特殊意義的字符,如*、?、|、;、~、>、<、&等。請(qǐng)對(duì)比以下兩個(gè)命令: rshhostcatremotefile>>localfile

表示在遠(yuǎn)程計(jì)算機(jī)上用cat命令查看遠(yuǎn)程計(jì)算機(jī)上的remotefile文件,并采用附加重定向元字符重定向到本地計(jì)算機(jī)的localfile文件。如果命令中的元字符加上引號(hào),如下:rshhostcatremotefile">>"otherremotefile

表示在遠(yuǎn)程計(jì)算機(jī)上用cat命令查看遠(yuǎn)程計(jì)算機(jī)上的remotefile文件,并采用附加重定向到遠(yuǎn)程計(jì)算機(jī)host的otherremotefile文件。3.1.2.4ssh客戶端命令 ssh(SSH客戶端)是一個(gè)為實(shí)現(xiàn)在遠(yuǎn)程計(jì)算機(jī)上登錄,并在其上執(zhí)行命令的程序。由于rlogin和rsh命令的安全性問(wèn)題,它們將被ssh命令代替。ssh可以在不安全網(wǎng)絡(luò)上的兩臺(tái)非信任(不可靠)的計(jì)算機(jī)之間提供安全的加密通信;X11連接和任意的TCP/IP端口也能在安全的信道上轉(zhuǎn)發(fā)。CentOS7在安裝時(shí)自動(dòng)安裝了ssh軟件包,并配置了SSH服務(wù)。ssh命令建立連接并在日志文件中記錄指定的主機(jī)名。用戶必須采用幾種方法中的一種向遠(yuǎn)程計(jì)算機(jī)證明自己的身分,這幾種方法依賴于所使用的協(xié)議版本。完整用法:ssh[-1246AaCfGgKkMNnqsTtVvXxYy][-bbind_address][-ccipher_spec][-D[bind_address:]port][-Elog_file][-eescape_char][-Fconfigfile][-Ipkcs11][-iidentity_file][-J[user@]host[:port]][-Laddress][-llogin_name][-mmac_spec][-Octl_cmd][-ooption][-pport][-Qquery_option][-Raddress][-Sctl_path][-Whost:port][-wlocal_tun[:remote_tun]][user@]hostname[command]其中、hostname或user@hostname是你要登錄到的遠(yuǎn)程計(jì)算機(jī)的名稱、IP地址或域名,login_name是登錄的注冊(cè)用戶名,而command為要遠(yuǎn)程計(jì)算機(jī)shell執(zhí)行的命令。表3-4列出了ssh命令的選項(xiàng)和說(shuō)明。命令選項(xiàng)選項(xiàng)說(shuō)明-1強(qiáng)制ssh使用協(xié)議版本1。-2強(qiáng)制ssh使用協(xié)議版本2。-4強(qiáng)制ssh使用IPv4地址。-6強(qiáng)制ssh使用IPv6地址。-A允許認(rèn)證代理聯(lián)接。這選項(xiàng)也可以在每臺(tái)計(jì)算機(jī)的基本配置文件中進(jìn)行設(shè)定。由于警告信息,代理轉(zhuǎn)發(fā)應(yīng)該被允許。有屏蔽遠(yuǎn)程計(jì)算機(jī)文件許可能力的用戶可以通過(guò)轉(zhuǎn)發(fā)連接訪問(wèn)本地代理。攻擊者不能從代理那里獲得按鍵信息。然而、攻擊者可以執(zhí)行鍵盤上的操作,使他們能鑒別出裝載進(jìn)代理正在使用者的身份。-a禁止認(rèn)證代理聯(lián)接。-C要求壓縮所有的數(shù)據(jù)(包括標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤信息和轉(zhuǎn)發(fā)自X11、TCP/IP連接的數(shù)據(jù))。壓縮算法與gzip壓縮算法相同,且壓縮“級(jí)別”可以通過(guò)協(xié)議版本1的壓縮級(jí)選項(xiàng)加以控制。如果使用調(diào)制解調(diào)器或網(wǎng)絡(luò)速度很慢時(shí),采用壓縮是個(gè)很好的選擇,但如果網(wǎng)絡(luò)速度很快,采用壓縮時(shí)速度反而會(huì)慢下來(lái)。-f要求ssh在后臺(tái)執(zhí)行、前臺(tái)可以繼續(xù)執(zhí)行命令。當(dāng)ssh在后臺(tái)運(yùn)行,假如ssh要詢問(wèn)密碼或通行證,而由用戶輸入時(shí)就可以采用這種方式。這個(gè)參數(shù)選項(xiàng)隱含了-n選項(xiàng)。在遠(yuǎn)程計(jì)算機(jī)上啟動(dòng)X11程序的推薦方式就像執(zhí)行ssh–fhostxterm命令。-G在評(píng)估主機(jī)和匹配塊并退出后,使ssh打印其配置。-g允許遠(yuǎn)程計(jì)算機(jī)連接到本地計(jì)算機(jī)的轉(zhuǎn)發(fā)端口。-K啟用基于GSSAPI的身份驗(yàn)證以及將GSS-API憑據(jù)轉(zhuǎn)發(fā)到服務(wù)器。-k禁用將GSSAPI憑據(jù)轉(zhuǎn)發(fā)(委派)到服務(wù)器。-M將ssh客戶端置于“主”模式以進(jìn)行連接共享。多個(gè)-M選項(xiàng)將ssh置于“主”模式,并且在接受從屬連接之前需要確認(rèn)。有關(guān)詳細(xì)信息,請(qǐng)參閱ssh_config(5)中的ControlMaster說(shuō)明。-N不執(zhí)行遠(yuǎn)程命令。這對(duì)于轉(zhuǎn)發(fā)端口很有用。-n從/dev/null設(shè)備重定向到標(biāo)準(zhǔn)輸入設(shè)備。當(dāng)ssh在后臺(tái)運(yùn)行時(shí)必須使用該參數(shù)選項(xiàng)。常見(jiàn)的技巧是使用這個(gè)選項(xiàng)在遠(yuǎn)程機(jī)器上執(zhí)行X11程序。例如、執(zhí)行ssh-nshadows.cs.hut.fiemacs&,將在shadows.cs.hut.fi上激活emace程序,并且X11連接將自動(dòng)轉(zhuǎn)到加密的信道上。ssh程序?qū)⒈环旁诤笈_(tái)執(zhí)行。-q退出模式。促使所有的警告和診斷信息被抑制。-s可用于要求調(diào)用遠(yuǎn)程系統(tǒng)的一個(gè)子系統(tǒng)。子系統(tǒng)是SSH2協(xié)議的一個(gè)特色,該協(xié)議便于為其他應(yīng)用程序使用SSH實(shí)現(xiàn)安全傳輸(例如、sftp)。子系統(tǒng)被指定作為遠(yuǎn)程命令。-T禁止分配偽終端。-t強(qiáng)制分配偽終端。這可以用來(lái)在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行基于屏幕的程序,例如執(zhí)行菜單式的服務(wù)程序。即使ssh沒(méi)有本地終端,加上-t參數(shù)選項(xiàng)也會(huì)強(qiáng)制分配終端。-V顯示版本號(hào)并退出。-vVerbose模式。促使ssh打印出有關(guān)進(jìn)程的調(diào)試信息。這對(duì)于調(diào)試連接、認(rèn)證和配置等問(wèn)題是有幫助的。-X啟用X11轉(zhuǎn)發(fā)。也可以在配置文件中基于每個(gè)主機(jī)指定。應(yīng)謹(jǐn)慎啟用X11轉(zhuǎn)發(fā)。能夠繞過(guò)遠(yuǎn)程主機(jī)(對(duì)于用戶的X授權(quán)數(shù)據(jù)庫(kù))的文件權(quán)限的用戶可以通過(guò)轉(zhuǎn)發(fā)的連接訪問(wèn)本地X11顯示器。然后,攻擊者可以執(zhí)行諸如擊鍵監(jiān)控之類的活動(dòng)。-x禁止X11轉(zhuǎn)發(fā)-Y啟用可信的X11轉(zhuǎn)發(fā)。受信任的X11轉(zhuǎn)發(fā)不受X11SECURITY擴(kuò)展控制的約束。-y使用syslog(3)系統(tǒng)模塊發(fā)送日志信息。默認(rèn)情況下此信息將發(fā)送給stderr。-bbind_address對(duì)計(jì)算機(jī)上的多端口或別名地址指定某個(gè)端口來(lái)傳輸-ccipher_spec選擇用于加密會(huì)話的密碼規(guī)范。協(xié)議版本1允許指定單個(gè)密碼。其支持的值是“3des”,“blowfish”和“des”。對(duì)于協(xié)議版本2,cipher_spec是按優(yōu)先順序列出的以逗號(hào)分隔的密碼列表。有關(guān)更多信息,請(qǐng)參閱ssh_config(5)中的Ciphers關(guān)鍵字。-Dport指定一個(gè)本地、“動(dòng)態(tài)的”應(yīng)用層端口進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。這通過(guò)分配一個(gè)套接字用來(lái)監(jiān)聽(tīng)本地計(jì)算機(jī)的端口,每當(dāng)與該端口建立的連接都被轉(zhuǎn)到安全的信道上,并且由應(yīng)用層協(xié)議測(cè)定遠(yuǎn)程計(jì)算機(jī)的連接來(lái)自哪里。當(dāng)前支持SOCKS4協(xié)議,并且ssh作為SOCKS4服務(wù)器。只有超級(jí)用戶(root)才能在特定端口上轉(zhuǎn)發(fā)。動(dòng)態(tài)端口轉(zhuǎn)發(fā)也能在配置文件中指定。-Elog_file將調(diào)試日志附加到log_file而不是標(biāo)準(zhǔn)錯(cuò)誤輸出。-ech|^ch|none設(shè)定轉(zhuǎn)義字符(缺省為“~”)。轉(zhuǎn)義字符只有在每行的開(kāi)始才能被識(shí)別。如果轉(zhuǎn)義字符后緊跟點(diǎn)字符(“.”),則表示關(guān)閉連接;如果轉(zhuǎn)義字符后緊跟的是^Z,則表示暫停連接;如果轉(zhuǎn)義字符后緊跟的是轉(zhuǎn)義字符本身,則表示發(fā)送轉(zhuǎn)義字符一次。如果轉(zhuǎn)義字符設(shè)置為“none”,則表示禁止轉(zhuǎn)義。-Fconfigfile指定一個(gè)可選的、每個(gè)用戶的配置文件。如果該配置文件在命令行生效,則系統(tǒng)范圍的配置文件(/etc/ssh/ssh_config)將被忽略。每個(gè)用戶缺省的配置文件是$HOME/.ssh/config。-Ipkcs11指定PKS#11共享庫(kù)ssh應(yīng)該用于與提供用戶的私有RSA密鑰的PKCS#11令牌進(jìn)行通信。-iidentity_file選擇所讀取的RSA或DSA認(rèn)證識(shí)別文件。對(duì)于協(xié)議版本1默認(rèn)的是$HOME/.ssh/identity文件;對(duì)于協(xié)議版本2默認(rèn)的是$HOME/.ssh/id_rsa和$HOME/.ssh/id_dsa文件。識(shí)別文件也可以在每臺(tái)計(jì)算機(jī)的基本配置文件中進(jìn)行設(shè)定。可能有多個(gè)-i選項(xiàng)和多個(gè)指定的識(shí)別配置文件。-J[user@]host[:port]首先與跳轉(zhuǎn)主機(jī)建立ssh連接,然后從那里建立到最終目的地的TCP轉(zhuǎn)發(fā),從而連接到目標(biāo)主機(jī)??梢杂枚禾?hào)字符分隔指定多個(gè)跳躍。這是指定ProxyJump配置指令的快捷方式。-Lport:host:hostport指定本地計(jì)算機(jī)(客戶端)上特定的端口映射到遠(yuǎn)程特定的主機(jī)和端口。這通過(guò)分配一個(gè)套接字用來(lái)監(jiān)聽(tīng)本地計(jì)算機(jī)的端口,每當(dāng)與該端口建立的連接都被轉(zhuǎn)到安全的信道上,并且連接到遠(yuǎn)程計(jì)算機(jī)的端口。端口轉(zhuǎn)發(fā)也能在配置文件中指定。只有超級(jí)用戶(root)才能在特定端口上轉(zhuǎn)發(fā)。IPv6地址可以用port/host/hostport格式指定。-llogin_name指定在遠(yuǎn)程計(jì)算機(jī)上登錄的用戶名。這選項(xiàng)也可以在每臺(tái)計(jì)算機(jī)的基本配置文件中進(jìn)行設(shè)定。-mmac_spec以逗號(hào)分隔的MAC(消息認(rèn)證碼)算法列表,按優(yōu)先順序指定。有關(guān)更多信息,請(qǐng)參閱MACs關(guān)鍵字。-Octl_cmd控制活動(dòng)連接多路復(fù)用主進(jìn)程。指定-O選項(xiàng)時(shí),將解釋ctl_cmd參數(shù)并將其傳遞給主進(jìn)程。有效命令是:“檢查”(檢查主進(jìn)程是否正在運(yùn)行),“轉(zhuǎn)發(fā)”(請(qǐng)求轉(zhuǎn)發(fā)而不執(zhí)行命令),“取消”(取消轉(zhuǎn)發(fā)),“退出”(請(qǐng)求主機(jī)退出),以及“停止”“(請(qǐng)求主機(jī)停止接受進(jìn)一步的多路復(fù)用請(qǐng)求)。-ooption可用于以配置中使用的格式提供選項(xiàng)文件。這對(duì)于指定沒(méi)有單獨(dú)命令行標(biāo)志的選項(xiàng)很有用。有關(guān)選項(xiàng)的完整詳細(xì)信息,及其可能的值,請(qǐng)參見(jiàn)ssh_config(5)。-pport要連接到遠(yuǎn)程主機(jī)的端口。這可以指定配置文件中的每個(gè)主機(jī)。-Qquery_option查詢指定版本2支持的算法的ssh??捎玫墓δ馨ǎ好艽a(支持的對(duì)稱密碼),cipher-auth(支持經(jīng)過(guò)身份驗(yàn)證的對(duì)稱密碼加密),mac(支持的消息完整性代碼),kex(密鑰交換算法),密鑰(密鑰類型),密鑰證書(證書密鑰類型),key-plain(非證書密鑰類型)和protocol-version(支持SSH協(xié)議版本)。-Rport:host:hostport指定遠(yuǎn)程計(jì)算機(jī)(服務(wù)器)上特定的端口映射到本地特定的主機(jī)和端口。這通過(guò)分配一個(gè)套接字用來(lái)監(jiān)聽(tīng)遠(yuǎn)程計(jì)算機(jī)的端口,每當(dāng)與該端口建立的連接都被轉(zhuǎn)到安全的信道上,并且連接到本地計(jì)算機(jī)的端口。端口轉(zhuǎn)發(fā)也能在配置文件中指定。特定端口轉(zhuǎn)發(fā)只有在遠(yuǎn)程計(jì)算機(jī)上以超級(jí)用戶登錄時(shí)才能實(shí)現(xiàn)。IPv6地址可以用port/host/hostport格式指定。-Sctl_path指定用于連接共享的控件套接字的位置,或字符串“none”以禁用連接共享。有關(guān)詳細(xì)信息,請(qǐng)參閱ssh_config(5)中的ControlPath和ControlMaster說(shuō)明。-Whost:port請(qǐng)求將客戶端上的標(biāo)準(zhǔn)輸入和輸出轉(zhuǎn)發(fā)到安全通道在端口上托管。-wlocal_tun[:remote_tun]請(qǐng)求在客戶端(local_tun)和服務(wù)器(remote_tun)之間使用隧道設(shè)備與指定的tun(4)設(shè)備轉(zhuǎn)發(fā)

表3-4ssh客戶端命令選項(xiàng)及說(shuō)明SSH客戶端連接服務(wù)器,可以是口令認(rèn)證和秘鑰認(rèn)證,前者簡(jiǎn)單但不安全;最簡(jiǎn)單的口令認(rèn)證連接方式如圖3-4所示:圖3-4SSH口令認(rèn)證登錄秘鑰認(rèn)證是比較安全的,首先,要用ssh-keygen命令生成公鑰和私鑰,生成的秘鑰默認(rèn)在/root/.ssh/文件夾里面。如圖3-5所示:圖3-5生成秘鑰然后,用ssh-copy-id命令將生成的公鑰發(fā)送到對(duì)方的主機(jī)上去,它將自動(dòng)保存在對(duì)方主機(jī)的/root/.ssh/authorized_keys文件中,如圖3-6所示:圖3-6傳送公鑰到對(duì)方

當(dāng)?shù)卿泴?duì)方主機(jī)時(shí)不再提示輸入密碼,如圖3-7所示:圖3-7SSH秘鑰認(rèn)證登錄3.2管理用戶賬戶每一個(gè)登錄Linux系統(tǒng)的用戶在系統(tǒng)中都應(yīng)該有對(duì)應(yīng)的注冊(cè)賬戶,這些賬戶記錄了用戶的信息,如用戶名、登錄口令、用戶目錄所在的位置、所用的shell、建立時(shí)間、權(quán)限等信息。用戶賬戶管理包括:添加用戶、設(shè)置口令、刪除用戶、修改用戶屬性和權(quán)限等。因此、賬戶管理是系統(tǒng)管理員重要的日常工作之一。3.2.1添加用戶

超級(jí)用戶的賬戶在Linux系統(tǒng)安裝時(shí)已經(jīng)創(chuàng)建了,但超級(jí)用戶的權(quán)限太大不適合給普通用戶使用,否則會(huì)對(duì)Linux的系統(tǒng)安全造成威脅;因此,所有要使用Linux操作系統(tǒng)所管理資源的普通用戶都要向超級(jí)用戶或擁有超級(jí)用戶權(quán)限的系統(tǒng)管理員申請(qǐng)一個(gè)用戶賬戶,以便登錄系統(tǒng)。這對(duì)于超級(jí)用戶或系統(tǒng)管理員而言就是添加用戶。

添加用戶的方式既可以在字符終端下,也可以在圖形界面下。本節(jié)先介紹字符終端下的添加用戶方法,這種方式也有多種方法,如使用終端命令、修改配置文件、編寫shell腳本程序等。3.2.1.1終端命令添加用戶

添加用戶最常用的命令就是useradd命令

,該命令的參數(shù)和選項(xiàng)很多;早期的版本中該命令建立的用戶賬戶沒(méi)有設(shè)置用戶的口令,必須在賬戶建好后再用passwd命令設(shè)置口令,但在RedHatLinux9.0后對(duì)該命令做了修改,增加了-ppasswd參數(shù),無(wú)論是否使用-p參數(shù)系統(tǒng)都默認(rèn)調(diào)用crypt函數(shù)自動(dòng)生成一個(gè)隨機(jī)的初始口令,鎖住該賬戶以禁止用戶訪問(wèn)。當(dāng)然、超級(jí)用戶或系統(tǒng)管理員也可以用該參數(shù)取消初始口令,把設(shè)置口令的工作由新用戶自己來(lái)完成。使用useradd命令所建立的用戶賬戶信息實(shí)際上保存在/etc/passwd文本文件中,而加密的用戶賬戶信息則保存在/etc/shadow文件中。各種用法:

1、useradd[選項(xiàng)]用戶名 該命令中用戶名參數(shù)是必需的,選項(xiàng)是可選的具體見(jiàn)選項(xiàng)表;如果不使用可選項(xiàng),則系統(tǒng)自動(dòng)用默認(rèn)值。默認(rèn)的用戶工作主目錄是/home/用戶名,即Linux系統(tǒng)會(huì)自動(dòng)在/home目錄下創(chuàng)建一個(gè)以用戶名命名的目錄作為用戶的工作主目錄,并向該目錄復(fù)制.bash_logout、.bash_profile、.bashrc隱含文件和.mozilla目錄;系統(tǒng)默認(rèn)用戶使用的shell是bash。用戶賬戶信息會(huì)添加到系統(tǒng)相應(yīng)的文件中,如/etc/passwd、/etc/shadow文件;除非在命令行中使用-n選項(xiàng),否則系統(tǒng)將為每個(gè)用戶建立一個(gè)組群并加入到系統(tǒng)中。 例如、如下的命令將添加一個(gè)名為zxj的新用戶:

#useraddzxj

該用戶的工作主目錄為默認(rèn)的目錄,使用的shell也是默認(rèn)的;如果用戶不想要默認(rèn)的設(shè)置,則必須在命令中明確指定-dhome_dir和-sdefault_shell選項(xiàng)。 2、useradd-D

當(dāng)使用中僅帶-D命令選項(xiàng)時(shí),只是顯示當(dāng)前系統(tǒng)默認(rèn)的參數(shù)選項(xiàng)內(nèi)容,換句話說(shuō)、這種用法只是顯示系統(tǒng)默認(rèn)的參數(shù)和選項(xiàng),它并不能真的添加用戶。例如、執(zhí)行以下命令 #useradd–D則可能顯示: GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREAT_MAIL_SPOOL=yes

顯然,只是顯示所創(chuàng)建用戶的環(huán)境,如組號(hào)、工作目錄、shell等。 3、useradd-D[更改默認(rèn)值選項(xiàng)]當(dāng)–D選項(xiàng)和更改默認(rèn)值選項(xiàng)配合使用時(shí),useradd命令將為指定的選項(xiàng)更新默認(rèn)值。更改默認(rèn)值選項(xiàng)見(jiàn)表3-5的-D選項(xiàng)。思考:如果執(zhí)行useradd–D–g200–s/bin/csh命令后,再次執(zhí)行useradd–D將顯示什么?

表3-5列出了useradd命令的選項(xiàng)和說(shuō)明。命令選項(xiàng)選項(xiàng)說(shuō)明-bBASE_DIR如果未指定-dHOME_DIR,則系統(tǒng)默認(rèn)基本目錄.BASE_DIR與帳戶名稱連接以定義主目錄。BASE_DIR必須存在,否則無(wú)法創(chuàng)建主目錄。-cCOMMENT添加備注文字,并保存在passwd文件的備注欄中。-dHOME_DIR指定用戶登錄系統(tǒng)后所使用的工作主目錄。-eEXPIRE_DATE指定用戶賬戶的有效期限。有效期限的格式一般是年/月/日,但是如果用月/日/年或日/月/年,系統(tǒng)也能自動(dòng)識(shí)別。如果沒(méi)有指定,useradd將使用/etc/default/useradd中EXPIRE變量指定的默認(rèn)過(guò)期日期,或者一個(gè)空字符串(不過(guò)期)。-fINACTIVE指定在口令過(guò)期后多少天關(guān)閉該賬戶。如果未指定,useradd將使用/etc/default/useradd中的INACTIVE指定的默認(rèn)禁用周期,或者默認(rèn)為-1。-gGROUP指定用戶所屬的組群,組群名必須存在。組號(hào)碼必須指代已經(jīng)存在的組。如果沒(méi)有指定該參數(shù),則系統(tǒng)默認(rèn)采用用戶名作為組群名。-GGROUP1[,GROUP2,...[,GROUPN]]]指定用戶所屬的附加組群。每個(gè)組都用逗號(hào)隔開(kāi),沒(méi)有中間的空格。-h顯示幫助信息并退出。-kskeleton_dir指定用戶的缺省配置文件所在的目錄。如果使用-k選項(xiàng)則從-k選項(xiàng)指定的目錄中復(fù)制文件和目錄到用戶的工作目錄,否則、從/etc/skel目錄中復(fù)制文件與目錄。-k選項(xiàng)僅與-m選項(xiàng)一起使用。-KKEY=VALUE默認(rèn)覆蓋/etc/login.defs(包含UID_MIN,UID_MAX,UMASK,PASS_MAX_DAYS及其它)中的值。例如:-KPASS_MAX_DAYS=-1可以用于創(chuàng)建一個(gè)密碼不會(huì)過(guò)期的系統(tǒng)賬戶,即使系統(tǒng)賬戶沒(méi)有密碼??梢灾付ǘ鄠€(gè)-K選項(xiàng),如:-KUID_MIN=100-KUID_MAX=499-l不要將此用戶添加到最近登錄和登錄失敗數(shù)據(jù)庫(kù)-m創(chuàng)建用戶的主目錄-M不創(chuàng)建用戶的主目錄-N不創(chuàng)建同名的組-o允許使用重復(fù)的UID創(chuàng)建用戶-pPASSWORD如果用戶賬戶不設(shè)置初始口令,則用-p“”即可取消口令;否則系統(tǒng)會(huì)自動(dòng)生成一個(gè)隨機(jī)的初始口令,鎖住該賬戶!-r建立的是系統(tǒng)賬戶。這意味著該用戶ID比系統(tǒng)在/etc/login.defs文件中預(yù)設(shè)的UID_MIN(系統(tǒng)預(yù)設(shè)為500)值要低,且該用戶賬戶口令沒(méi)有期限;也不會(huì)在/home目錄下建立該用戶工作目錄。如果要為一個(gè)系統(tǒng)用戶賬戶建立工作目錄,則必須指定-m參數(shù)選項(xiàng)。-r參數(shù)選項(xiàng)由RedHat添加。-RCHROOT_DIR改變新根目錄為CHROOT_DIR,并從中復(fù)制配置文件-sshell指定用戶登錄后所使用的shell。使用中要指定shell的絕對(duì)路徑名,例如、/bin/csh。-uUID指定用戶ID。用戶ID的數(shù)值是唯一的,除非使用了-o參數(shù)選項(xiàng)。另外、該值也是非負(fù)的。一般指定的用戶ID值應(yīng)大于499,因?yàn)閿?shù)值0~499保留給系統(tǒng)賬戶使用。如果不用-u參數(shù)選項(xiàng),則對(duì)新增加的用戶ID,系統(tǒng)會(huì)自動(dòng)從UID_MIN的值、且大于其他任何已經(jīng)存在的UID值開(kāi)始遞增。-U創(chuàng)建與用戶同名的組-ZSEUSER為SELinux用戶映射使用指定SEUSER-D更改默認(rèn)值。默認(rèn)值選項(xiàng)如下:-gGROUP指定用戶預(yù)設(shè)所屬的組群。-bBASE_DIR在指定的用戶目錄下建立所有用戶的登錄工作目錄。系統(tǒng)默認(rèn)的預(yù)設(shè)值為/home。-eEXPIRE_DATE指定預(yù)設(shè)的賬戶有效期限。-fINACTIVE指定預(yù)設(shè)在口令過(guò)期后多少天關(guān)閉該賬戶。-sshell指定使用預(yù)設(shè)的shell。表3-5useradd命令的選項(xiàng)和說(shuō)明

命令執(zhí)行后會(huì)通過(guò)返回值告知用戶命令執(zhí)行的情況,useradd命令執(zhí)行可能的返回值如表3-6所示。命令返回值返回值含義0成功1無(wú)法更新密碼文件2無(wú)效的命令語(yǔ)法3給了選項(xiàng)一個(gè)無(wú)效的參數(shù)4UID已經(jīng)使用(且沒(méi)有-o)6指定的組不存在9用戶名已被使用10無(wú)法更新組文件12無(wú)法創(chuàng)建主目錄14無(wú)法更新SELinux用戶映射表3-6useradd命令的返回值及含義添加用戶另一個(gè)常用的命令就是adduser命令。在其他版本的Linux系統(tǒng)中,該命令是一個(gè)腳本程序,采用友好的交互方式,只要輸入adduser回車、按系統(tǒng)提示信息的要求輸入即可。使用者可以無(wú)需記憶復(fù)雜、繁多的參數(shù)選項(xiàng),而是讓使用者回答一系列的問(wèn)題來(lái)設(shè)置新用戶的各項(xiàng)信息,包括用戶的密碼等,使用較為方便。但在CentOS中,adduser命令則是useradd命令的符號(hào)連接,兩者實(shí)際上是同一個(gè)命令;如果在/usr/sbin目錄下執(zhí)行l(wèi)s–ladduser命令,則可以看到它是連接到useradd命令。3.2.1.2修改文件添加用戶用

useradd命令添加用戶,實(shí)際上就是向/etc/passwd、/etc/shadow和/etc/group文件中寫入信息。因此、該方法就是利用任意一個(gè)文本編輯器直接打開(kāi)passwd等文件(在/etc目錄下)修改,passwd文件的每一行有7個(gè)域、且由冒號(hào)“:”分隔,每行就是一個(gè)用戶的賬戶信息。若要添加用戶,只要在文件中寫入相應(yīng)的條目。但是這種方法不會(huì)自動(dòng)創(chuàng)建用戶工作目錄、不會(huì)自動(dòng)修改shadow和group文件,所以超級(jí)用戶或系統(tǒng)管理員一定要記住為新用戶創(chuàng)建相應(yīng)的工作目錄,并把一些必要的用戶配置文件復(fù)制到該用戶目錄下;還要按規(guī)則修改shadow和group文件。采用這種方法(包括后面將要介紹的通過(guò)修改文件刪除用戶、修改屬性)時(shí),要求系統(tǒng)管理員必須對(duì)Linux系統(tǒng)非常熟悉,否則很容易漏掉一些操作,造成用戶賬戶中數(shù)據(jù)的丟失或者無(wú)法正常使用。因此、建議初學(xué)者要慎重采用該方法。有關(guān)group文件的說(shuō)明參見(jiàn)3.3節(jié)。passwd文件的格式:

Loginname:passwd:userID:groupID:userfullname:homedirectory:loginshell

每個(gè)域的具體含義如下:Loginname:用戶向系統(tǒng)登錄時(shí)輸入的用戶名。該用戶名的命名規(guī)則是:只能字母、數(shù)字和下劃線組成,而且只能以字母開(kāi)始,雖然以下劃線開(kāi)始也能創(chuàng)建用戶賬戶,但系統(tǒng)不允許登錄;用戶名的長(zhǎng)度不超過(guò)32個(gè)字符,否則提示為無(wú)效的用戶名;同一系統(tǒng)中用戶名必須是唯一的。passwd:為了用戶賬戶的安全,Linux系統(tǒng)對(duì)用戶的口令和其他信息做了加密處理,并保存在/etc/shadow文件中;因此在passwd文件的passwd域不會(huì)明文顯示口令,只是以字符“x”表示該用戶存在登錄口令;如果用戶賬戶在創(chuàng)建時(shí)沒(méi)有口令,則該域?yàn)榭铡serID:是系統(tǒng)內(nèi)部識(shí)別用戶的標(biāo)識(shí),Linux把用戶分為系統(tǒng)用戶和普通用戶,一般系統(tǒng)用戶由系統(tǒng)進(jìn)程、服務(wù)守護(hù)進(jìn)程和超級(jí)用戶等組成,分配給它們的用戶ID一般在0~99之間,普通用戶的ID默認(rèn)從500開(kāi)始遞增、最大可以到60000。除非在用useradd命令添加用戶時(shí)使用了-r參數(shù)選項(xiàng),否則添加的都是普通用戶;如果使用了-o參數(shù)選項(xiàng),則用戶的ID并非是唯一的,可能幾個(gè)用戶有相同的用戶ID,但系統(tǒng)把它們看成是同一個(gè)用戶。UserID默認(rèn)值的設(shè)置在/etc目錄下的login.defs文件中。groupID:用戶所屬組群的標(biāo)識(shí),其含義與用戶ID類似;用戶組ID的默認(rèn)值也是從500~60000。GroupID默認(rèn)值的設(shè)置在/etc目錄下的login.defs文件中。userfullname:用戶全名。該域?qū)嶋H上是對(duì)登錄用戶名的注釋,該域的內(nèi)容會(huì)被加到電子郵件地址的前面。例如、任何從該用戶賬戶發(fā)送的電子郵件將在對(duì)方顯示“userfullname”<username@163.com>。omedirectory:該域是創(chuàng)建用戶賬戶時(shí)設(shè)定的用戶工作目錄,用戶在登錄系統(tǒng)時(shí)自動(dòng)進(jìn)入該目錄,用戶建立的文件一般默認(rèn)保存在該目錄下。loginshell:該域是創(chuàng)建用戶賬戶時(shí)設(shè)定用戶所使用的shell。所謂shell就是用戶與操作系統(tǒng)內(nèi)核之間的接口,是系統(tǒng)命令的解釋程序。在Linux系統(tǒng)中有多種shell可供用戶選擇,例如,bash(GNUBourne-AgainShell)、sh(BourneShell)、csh(CShell)、ksh(KornShell)等等,但系統(tǒng)默認(rèn)的shell是bash。雖然各種shell的基本功能相同,但有些命令只能在特定的shell下執(zhí)行。 shadow文件的格式與passwd文件的格式是一樣的,只不過(guò)除了用戶名域沒(méi)有加密外其他各個(gè)域都是加密保存的。

為了更好地理解passwd和shadow文件的作用,學(xué)會(huì)如何通過(guò)修改配置文件添加用戶;以下給出一個(gè)具體的passwd和shadow文件作為對(duì)比示例。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 adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown . . . zxj:x:500:500:zxj:/home/zxj:/bin/bash zx:x:501:501:zx:/home/zx:/bin/bashshadow示例文件:

root:$1$cHa/5oEc$/yPWnS1ra4LuKyUMPQuTP1:13484:0:99999:7:::bin:*:13484:0:99999:7:::daemon:*:13484:0:99999:7:::adm:*:13484:0:99999:7:::lp:*:13484:0:99999:7:::sync:*:13484:0:99999:7:::shutdown:*:13484:0:99999:7::: . . .zxj:$1$AipulblD$tgWgt13zBDMMXjUw1pQwB1:13484:0:99999:7:::zx:$1$7JbYNEAF$mp7Cq8Afc3RBqHb0LFwNz1:13553:0:99999:7:::

從passwd和shadow示例文件可以看到:文件的每行有7個(gè)域,每個(gè)域之間用“:”分隔;每行就是一個(gè)完整用戶賬戶信息;前面各行為系統(tǒng)用戶、超級(jí)用戶屬于系統(tǒng)用戶,它的用戶ID和組ID都是0,超級(jí)用戶的工作目錄是/root。最后兩行為添加的普通用戶。本例省略了中間其他系統(tǒng)用戶各行。對(duì)比這兩個(gè)文件思考它們不同在哪里?

理解了這兩個(gè)文件的格式及各個(gè)域的含義,通過(guò)修改它們來(lái)添加用戶就非常容易。首先,手工添加時(shí)只要按規(guī)定的格式(各個(gè)域的順序、分隔符)、以行為單位輸入并保存即可,口令域可以不填、賬戶啟用時(shí)由系統(tǒng)管理員或用戶自己用passwd命令設(shè)置;用戶ID和組ID只要按當(dāng)前普通用戶的UID和GID最高號(hào)數(shù)遞增;另外,要?jiǎng)?chuàng)建用戶工作目錄、且目錄名要與登錄用戶名相同,路徑一般在/home目錄下;shell可以根據(jù)需要選擇,一般用/bin/bash即可。

其次,在/etc/shadow文件中添加login_name::::::這一行。

最后,還要在/etc/group文件中添加該用戶組對(duì)應(yīng)的行。3.2.2設(shè)置口令使用useradd命令添加用戶時(shí),如果使用-p“”參數(shù)選項(xiàng),則還未設(shè)置口令,因此、為了安全,該賬戶在使用前還要設(shè)置口令。如果使用非-p“”參數(shù)選項(xiàng),則系統(tǒng)自動(dòng)生成的口令只是暫時(shí)禁止使用該賬戶,必需重新設(shè)置口令后普通用戶才能使用該賬戶。設(shè)置口令既可以在字符終端下完成,也可以在圖形界面下完成。3.2.2.1口令設(shè)置規(guī)則

口令設(shè)置的好與壞,直接關(guān)系到用戶賬戶是否容易被入侵、用戶工作目錄的資料是否安全,如果是超級(jí)用戶,則還關(guān)系到整個(gè)系統(tǒng)的安全。因此、設(shè)置口令是一項(xiàng)非常重要的工作。要設(shè)置一個(gè)好的口令,必須要注意:口令不要用:用戶名字或?qū)櫸锩菀着c用戶相關(guān)聯(lián)的任何東西,如生日、住址等。字典中的單詞上面任何一個(gè)的倒序。與用戶有關(guān)聯(lián)的東西或它的倒序容易被猜中;字典中的單詞或其倒序易遭暴力破解??诹钜河凶銐蜷L(zhǎng)度,每增長(zhǎng)一位、被破解的可能性會(huì)降低幾個(gè)數(shù)量級(jí)。用混有數(shù)字、特定字符的組合。用一些對(duì)自己容易記住,但是對(duì)別人又難以猜到的數(shù)字、字符組合。用輸入較快的數(shù)字、特定字符的組合。不要記錄下密碼。經(jīng)常改變密碼。3.2.2.2口令設(shè)置命令設(shè)置口令的命令是passwd,如果要用該命令為其他用戶設(shè)置口令,則只能由超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能完成;如果是普通用戶會(huì)受到權(quán)限的限制則只能改變?cè)撚脩糇约旱目诹??;居梅ǎ簆asswd[user_name]

基本用法中的用戶名如果省略,則設(shè)置的是當(dāng)前已經(jīng)登錄用戶的口令;如果設(shè)置的是新添加的用戶,則必需指定該用戶的用戶名。例如、為新添加的用戶x10設(shè)置口令:[root@localhost/]#useraddx10 添加新用戶賬戶[root@localhost/]#passwdx10 設(shè)置新口令Changingpasswordforuserx10. 系統(tǒng)顯示為x10用戶改變口令信息Newpassword: 提示輸入新口令Retypenewpassword: 提示確認(rèn)新口令passwd:allauthenticationtokensupdatedsuccessfully. 修改成功[root@localhost/]#為新用戶設(shè)置口令與為老用戶改變口令在用法上沒(méi)有什么的差別,只是系統(tǒng)顯示的信息不同而已;例如、改變口令時(shí)的提示信息是要求輸入當(dāng)前的口令。在按提示要求輸入口令時(shí),如果口令太簡(jiǎn)單、例如只有數(shù)字或字母;或者口令長(zhǎng)度太短、例如長(zhǎng)度少于6個(gè)字符,則Linux系統(tǒng)為了賬戶安全都會(huì)拒絕接受并要求重新輸入。注意:如果執(zhí)行過(guò)pwunconv命令,則為新用戶賬戶設(shè)置口令時(shí)系統(tǒng)會(huì)有錯(cuò)誤提示信息,一定要再執(zhí)行pwconv命令后才能設(shè)置;這種情況下用編輯器打開(kāi)/etc/shadow文件時(shí)看不到任何信息。pwconv命令是開(kāi)啟用戶的投影口令;pwunconv命令是關(guān)閉用戶的投影口令。

完整用法:passwd[-k][-l][-u[-f]][-d][-nmindays][-xmaxdays][-wwarndays][-iinactivedays][-S][username]其中、用戶名參數(shù)的規(guī)則與該命令的基本用法相同;其他為命令選項(xiàng)。表3-7列出了passwd命令的選項(xiàng)和說(shuō)明。命令選項(xiàng)選項(xiàng)說(shuō)明-k采用該選項(xiàng),則設(shè)置成只有在口令過(guò)期失效后才能改變。-l采用該選項(xiàng)可以鎖住賬戶。passwd命令會(huì)在加密過(guò)的密碼字符串前加上“!”字符(在/etc/shadow文件中),讓該賬戶的口令失效而無(wú)法登錄系統(tǒng)。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-u采用該選項(xiàng)可以解開(kāi)已被鎖住的賬戶。passwd命令會(huì)把密碼字符串前的“!”字符刪除并恢復(fù)該賬戶口令,使該賬戶用戶可以登錄系統(tǒng)。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-f強(qiáng)制執(zhí)行解鎖操作。對(duì)于原來(lái)有口令的賬戶,如果采用-l選項(xiàng)加鎖、則采用-u選項(xiàng)解鎖即可。對(duì)于原來(lái)沒(méi)有口令的賬戶,如果采用-l選項(xiàng)加鎖、則必須采用-uf選項(xiàng)配合來(lái)解鎖。-d無(wú)論口令是否加鎖,都可以刪除口令。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-nmindays如果用戶賬戶支持口令生存期限,則該選項(xiàng)將以天數(shù)為單位設(shè)置最小口令生存期限。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-xmaxdays如果用戶賬戶支持口令生存期限,則該選項(xiàng)將以天數(shù)為單位設(shè)置最大口令生存期限。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-wwarndays如果用戶賬戶支持口令生存期限,則該選項(xiàng)將預(yù)先設(shè)置口令過(guò)期前警告的天數(shù)。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-iinactivedays如果用戶賬戶支持口令生存期限,則該選項(xiàng)將設(shè)置口令過(guò)期后多少天關(guān)閉該賬戶。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。-S列出口令的相關(guān)信息,如是否有口令、口令是否被鎖等。這個(gè)參數(shù)選項(xiàng)只有超級(jí)用戶或有超級(jí)用戶權(quán)限的系統(tǒng)管理員才能使用。表3-7passwd命令的選項(xiàng)和說(shuō)明3.2.2.3應(yīng)用舉例參考示例1:某用戶的登錄名為x10,由于忘記了口令請(qǐng)求系統(tǒng)管理員幫助。解決方法之一:系統(tǒng)管理員以超級(jí)用戶身份登錄系統(tǒng),執(zhí)行:#passwd–dx10#sux10再由該用戶自己執(zhí)行passwd命令,重新設(shè)置賬戶口令。解決方法之二:系統(tǒng)管理員以超級(jí)用戶身份登錄系統(tǒng),執(zhí)行:#vi/etc/passwd找到該用戶在passwd文件中的記錄行,刪除口令域中的“x”標(biāo)記并保存。執(zhí)行:#sux10再由該用戶自己執(zhí)行passwd命令,重新設(shè)置賬戶口令。參考示例2:某用戶的登錄名為x11,由于出差暫時(shí)離開(kāi)請(qǐng)求系統(tǒng)管理員鎖住賬戶。解決方法:系統(tǒng)管理員以超級(jí)用戶身份登錄系統(tǒng),執(zhí)行:#passwd–lx11#exit

待該用戶出差返回后由系統(tǒng)管理員解鎖,執(zhí)行:#passwd–ux113.2.3成批添加用戶

作為系統(tǒng)管理員經(jīng)常會(huì)遇到這樣的問(wèn)題,就是有連續(xù)、成批的用戶要在系統(tǒng)中建立用戶賬戶,例如、學(xué)校計(jì)算機(jī)實(shí)驗(yàn)室某個(gè)學(xué)期有某年級(jí)某班的幾十名學(xué)生要通過(guò)網(wǎng)絡(luò)遠(yuǎn)程登錄到學(xué)校Lniux服務(wù)器進(jìn)行shell編程實(shí)驗(yàn)。在這種情況下,如果采用useradd命令在服務(wù)器上添加學(xué)生賬戶,則只能一個(gè)一個(gè)地添加,不僅速度慢而且還容易出錯(cuò)。在RedHatLinux9.0版本后提供了一個(gè)新的添加用戶的命令newusers,利用它就可以實(shí)現(xiàn)快速、便捷地成批添加用戶。當(dāng)然、也可以編寫shell腳本程序來(lái)實(shí)現(xiàn),這將在第八章shell編程中介紹。3.2.3.1newusers命令

這個(gè)newusers命令從一個(gè)文本文件中讀取用戶名和明文口令對(duì),并用這些信息去更新若干已存在的用戶組群或者去建立一些新的用戶。該文本文件的每一行與標(biāo)準(zhǔn)的口令文件的每一行有相同的格式,但有以下例外。 pw_passwd加密后的口令域,該域?qū)⒈患用懿⒂米骷用芸诹畹男轮怠?pw_age代理信息域,如果用戶已經(jīng)存在,該域?qū)?huì)忽略影子口令。pw_gid組群ID域,該域可以是現(xiàn)存組的名字,在這種情況下指定的用戶將被添加為一個(gè)成員。如果給出一個(gè)不存在號(hào)數(shù)的組,則使用該號(hào)的新組將被建立。pw_dir工作目錄域,該域?qū)⒆鳛橐粋€(gè)目錄實(shí)體檢查、如果它不存在,則建立一個(gè)同名的新目錄。該目錄的所有權(quán)將由建立與更新它的用戶設(shè)置。

要注意的是newusers命令所讀取的文本文件必須妥善地保存,因?yàn)樗形醇用艿目诹钚畔ⅰ?/p>

命令用法:newusers[options][new_users]選項(xiàng)options是可選的,用法如表3-8所示;參數(shù)new_users是可選的、如果指定,則它是一個(gè)與passwd口令文件格式相同的文本文件,并由newusers命令讀取它;如果不指定,則系統(tǒng)從標(biāo)準(zhǔn)輸入設(shè)備上接受輸入,輸入的格式也必須按照passwd文件的格式,輸入完成后以Ctrl+D結(jié)束返回系統(tǒng)提示符。命令選項(xiàng)選項(xiàng)說(shuō)明-cmethod使用指定的方法加密密碼。可用的方法有DES,MD5,NONE,andSHA256或SHA512,前提是您的libc支持這方法。-h顯示幫助信息并退出。-r創(chuàng)建一個(gè)系統(tǒng)賬戶。將在/etc/shadow中創(chuàng)建沒(méi)有老化信息的系統(tǒng)用戶,并且在login.defs中定義的SYS_UID_MIN-SYS_UID_MAX范圍中選擇其數(shù)字標(biāo)識(shí)符,而不是UID_MIN-UID_MAX(以及用于創(chuàng)建組的GID對(duì)應(yīng)項(xiàng))。-RCHROOT_DIR改變新根目錄為CHROOT_DIR,并從中復(fù)制配置文件-s使用指定次數(shù)的輪轉(zhuǎn)來(lái)加密密碼。值0表示讓系統(tǒng)為加密方法選擇默認(rèn)的輪轉(zhuǎn)次數(shù)(5000)。會(huì)強(qiáng)制最小1,000,最大9,9999,9999您只可以對(duì)SHA256或SHA512使用此選項(xiàng)。默認(rèn),輪轉(zhuǎn)數(shù)由/etc/login.defs文件中的SHA_CRYPT_MIN_ROUNDS和SHA_CRYPT_MAX_ROUNDS變量確定。表3-8newusers命令的選項(xiàng)和說(shuō)明在采用以下passwd文件格式時(shí):Loginname:passwd:userID:groupID:userfullname:homedirectory:loginshell

要特別注意passwd域,如果指定該域,則它是以明文形式存在(在所讀取的文本文件中或終端輸入時(shí))的口令;如果不指定該域,則新建立的用戶賬戶口令是系統(tǒng)隨機(jī)自動(dòng)生成的,必須由超級(jí)用戶或系統(tǒng)管理員刪除口令或重新設(shè)置口令,這可以用下一小節(jié)將要介紹的chpasswd命令進(jìn)行口令的成批更新。3.2.3.2應(yīng)用示例問(wèn)題提出:要在學(xué)校計(jì)算機(jī)實(shí)驗(yàn)室的Linux服務(wù)器上建立1個(gè)班(50人)的學(xué)生賬戶,為每個(gè)學(xué)生分配登錄用戶名、口令、UID、GID、用戶工作目錄和登錄所用的shell。問(wèn)題分析:

顯然,對(duì)于這個(gè)問(wèn)題最好的解決方法就是成批地創(chuàng)建用戶賬戶。解決方法:

首先,編輯一個(gè)passwd文件格式的、包含所有要?jiǎng)?chuàng)建用戶賬戶信息的文本文件;把該文件命名為n_user.txt保存。參考文件如下:jb040101:stu0401:701:701::/home/jb040101:/bin/bash jb040102:stu0401:702:702::/home/jb040102:/bin/bash jb040103:stu0401:703:703::/home/jb040103:/bin/bash . . . jb0401049:stu0401:749:749::/home/jb040149:/bin/bash jb0401050:stu0401:750:750::/home/jb040150:/bin/bash

最后,執(zhí)行命令:#newusersn_user.txt

一次性完成了50個(gè)學(xué)生賬戶的建立,這里n_user.txt文件中的口令stu0401就是以后學(xué)生登錄系統(tǒng)的初始口令,登錄后自己可以再修改;雖然這里是以明文形式存在,但在Linux的/etc/passwd和/etc/shadow文件中都已經(jīng)是加密的。3.2.4成批修改口令

在成批地添加了用戶后,可能還要成批地修改用戶賬戶的口令。例如、在用newuser命令和用戶信息文本文件添加用戶時(shí)沒(méi)有指定口令域,則必須重新設(shè)置口令用戶才能登錄系統(tǒng)。在RedHatLinux9.0以后的版本中提供了一個(gè)新的修改用戶口令的命令chpasswd,利用它就可以實(shí)現(xiàn)快速、便捷地成批修改用戶口令。3.2.4.1chpasswd命令

這個(gè)chpasswd命令從標(biāo)準(zhǔn)輸入設(shè)備上讀取由用戶名和口令對(duì)組成的文件,并用這些信息去更新已存在的用戶組群。該文件中每行的格式為:

user_name:password

要注意的是chpasswd命令所讀取的文件必須妥善地保存,因?yàn)樗形醇用艿目诹钚畔ⅰA硗?、指定的用戶必需存在?/p>

命令用法:chpasswd[-e]

參數(shù)選項(xiàng)-e是可選的,如果不指定該參數(shù)選項(xiàng),則改變后的口令就是chpasswd命令所讀取文件中password域的明文信息,但在Linux系統(tǒng)中的/etc/passwd和/etc/shadow文件中顯示的是已經(jīng)加密的口令;如果指定該參數(shù)選項(xiàng),則改變后的口令就是chpasswd命令所讀取文件中password域明文信息的加密形式,但在Linux系統(tǒng)中的/etc/shadow文件中顯示的是原口令的明文信息,由于加密是系統(tǒng)隨機(jī)生成口令,所以一般不用帶-e參數(shù)選項(xiàng)。

由于該命令是從標(biāo)準(zhǔn)輸入設(shè)備上讀取文件,所以可以采用從鍵盤輸入或者采用文件輸入重定向。如果用鍵盤輸入,則輸入的格式也必須按照“user_name:password”的格式,輸入完成后以Ctrl+D結(jié)束返回系統(tǒng)提示符。3.2.4.2應(yīng)用示例問(wèn)題提出:更改上一小節(jié)應(yīng)用示例中50名學(xué)生賬戶的口令。問(wèn)題分析:顯然,對(duì)于這個(gè)問(wèn)題最好的解決方法就是成批地修改用戶賬戶口令。解決方法:

首先,編輯一個(gè)文本文件,它只要包含所有要修改口令的用戶的用戶名和新口令,每行對(duì)應(yīng)一個(gè)用戶;把該文件命名為n_uspw.txt保存。參考文件如下:

jb040101:stujsj jb040102:stujsj jb040103:stujsj . . . jb0401049:stujsj

jb0401050:stujsj最后,執(zhí)行命令:#chpasswd<n_uspw.txt

一次性完成了50個(gè)學(xué)生賬戶口令的修改,這里n_uspw.txt文件中的口令stujsj就是以后學(xué)生登錄系統(tǒng)的初始口令,登錄后自己可以再修改。注意、如果采用-e參數(shù)選項(xiàng),則學(xué)生就無(wú)法用stujsj口令登錄系統(tǒng)了,因?yàn)橄到y(tǒng)是把stujsj加密后作為口令。3.2.5刪除用戶如果某個(gè)用戶已永久地從系統(tǒng)中撤離,則為了系統(tǒng)的安全系統(tǒng)管理員要及時(shí)刪除該用戶賬戶和相關(guān)的目錄與文件;如果只是暫時(shí)撤離,則只要用passwd–llogin_name命令把該用戶賬戶鎖住或者在passwd文件的口令域x字符前加上個(gè)“*”或“!”即可。3.2.5.1終端命令刪除刪除用戶賬戶使用userdel命令,該命令包含兩部分的操作。第一、刪除/etc/passwd文件中的用戶賬戶信息;第二、刪除對(duì)應(yīng)于該賬戶的系統(tǒng)配置文件和該賬戶的工作目錄。這兩部分可以同時(shí)完成也可以分開(kāi)完成,只是取決于是否使用命令的參數(shù)選項(xiàng)。命令用法:userdel[-r]login_name參數(shù)說(shuō)明:login_name是用戶登錄系統(tǒng)的用戶名。

命令選項(xiàng)-r表示遞歸刪除該用戶的工作目錄及該目錄下的所有子目錄和文件。如果選項(xiàng)-r不指定,則只是刪除了該用戶的賬戶信息,而保留該用戶的工作目錄及該工作目錄下的所有子目錄和文件;除非該用戶的工作目錄要保留給其他用戶使用,否則最好不要這樣。如果某個(gè)用戶當(dāng)前已經(jīng)登錄系統(tǒng),則不允許用userdel命令刪除這個(gè)用戶的賬戶。

該命令還有一個(gè)-f選項(xiàng),此選項(xiàng)會(huì)強(qiáng)制刪除用戶賬戶,甚至用戶仍然處在登錄狀態(tài)。它也強(qiáng)制刪除用戶的主目錄和郵箱,即使其它用戶也使用同一個(gè)主目錄或郵箱不屬于指定的用戶。如果/etc/login.defs中的USERGROUPS_ENAB定義為yes,并且如果有一個(gè)和用戶同名的組,也會(huì)刪除此組,即使它仍然是別的用戶的主組。注意:此選項(xiàng)危險(xiǎn),可能會(huì)破壞系統(tǒng)的穩(wěn)定性?。?!3.2.5.2修改文件刪除由于用戶的賬戶信息是記錄在/etc/passwd和/etc/shadow文件中的,所以直接刪除這些文件中該用戶的賬戶信息行也可以達(dá)到刪除用戶賬戶的目的,如果再手動(dòng)刪除用戶工作目錄,則就完整地刪除了該用戶。

首先,刪除/etc/passwd和/etc/shadow文件中該用戶對(duì)應(yīng)的行。

其次,用rm–fr命令強(qiáng)制遞歸地刪除該用戶的工作目錄及目錄下的所有子目錄、文件。

最后,還要在/etc/group文件中刪除該用戶組對(duì)應(yīng)的行。3.2.6修改用戶屬性

從添加、刪除用戶命令可以看到,實(shí)際上添加或刪除用戶其中一項(xiàng)就是添加或刪除用戶的賬戶信息,而這些賬戶信息就是用戶的屬性。用戶有時(shí)會(huì)提出修改登錄的用戶名、加入別的組群或使用其他的shell等要求,作為系統(tǒng)管理員要能根據(jù)用戶合理的要求作出必要的修改,以使用戶能方便、有效地使用系統(tǒng)。修改用戶屬性可以采用終端命令方式也可以采用修改配置文件的方式。3.2.6.1終端命令修改

修改用戶屬性的終端命令是usermod,該命令的用法與useradd命令很類似,參數(shù)選項(xiàng)也有很多是相同的。這里僅就與useradd命令不同的參數(shù)部分進(jìn)行說(shuō)明。其他的參數(shù)選項(xiàng)請(qǐng)參考useradd命令的參數(shù)選項(xiàng)說(shuō)明。

命令用法:usermod[選項(xiàng)]login_name

該命令除了能修改用戶屬性外,還可以對(duì)用戶賬戶口令進(jìn)行加/解鎖處理。如果某個(gè)用戶當(dāng)前已經(jīng)登錄系統(tǒng),則不允許用usermod命令修改這個(gè)用戶的屬性。命令選項(xiàng)選項(xiàng)說(shuō)明-dhome_dir[-m]指定用戶新的工作目錄。如果采用-m參數(shù)選項(xiàng),則用戶當(dāng)前工作目錄中的內(nèi)容將移到新的工作目錄;若新目錄不存在,則自動(dòng)建立它。-llogin_name修改用戶登錄的用戶名。-a將用戶添加到附加組。只能和-G選項(xiàng)一起使用。-L鎖定用戶賬戶口令,使口令無(wú)效。-U解除用戶賬戶口令鎖定,使口令生效。表3-9usermod命令的部分選項(xiàng)和說(shuō)明表3-9列出了usermod命令的部分選項(xiàng)和說(shuō)明,其它參見(jiàn)表3-5。

應(yīng)用示例1:將用戶登錄名tc01改為ta01,用戶工作目錄改為/home/ta01,所屬組群改為root。

執(zhí)行命令:#usermod–d/home/ta01–m–groot–lta01tc01

注意:如果沒(méi)有-m參數(shù),則不會(huì)在/home目錄下建立ta01用戶工作目錄,登錄系統(tǒng)時(shí)會(huì)提示沒(méi)有工作目錄!。應(yīng)用示例2: 使ta01用戶的口令無(wú)效。 執(zhí)行命令:#usermod–Lta01 這個(gè)命令執(zhí)行的效果與執(zhí)行passwd–lta01命令的效果一樣。3.2.6.2修改passwd文件 與修改文件添加、刪除用戶的原理一樣,所以直接修改/etc/passwd和/etc/shadow文件中該用戶的賬戶信息行也可以達(dá)到修改用戶屬性目的,如果修改了用戶登錄名,則在shadow

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論