當(dāng)Windows占據(jù)操作系統(tǒng)領(lǐng)域半壁江山的時(shí)候,很多程序員和使用者不滿(mǎn)于Windows霸道,興起了對(duì)其他操作系統(tǒng)軟件的開(kāi)發(fā),其中最著名的就是Linux。Linux是LinusB Torvolds在的1991年首次編寫(xiě)的一種類(lèi)操作系統(tǒng),之后借助于Internet網(wǎng)絡(luò),在RedHat等公司的努力,和IBM、英特爾等的大力支持下,經(jīng)過(guò)全世界各地計(jì)算機(jī)愛(ài)好者的共同努力,現(xiàn)已成為今天世界上使用最多的一種UNIX類(lèi)操作系統(tǒng)。
Linux操作系統(tǒng)可支持多用戶(hù)共同使用,其中的每個(gè)用戶(hù)可同時(shí)運(yùn)行不同的程序集合。若多個(gè)用戶(hù)同時(shí)使用一臺(tái)計(jì)算機(jī),那么平均到每個(gè)用戶(hù)上的資源占用比一個(gè)用戶(hù)單獨(dú)使用這臺(tái)計(jì)算機(jī)時(shí)要低。多用戶(hù)操作系統(tǒng)允許多個(gè)用戶(hù)同時(shí)使用所有的系統(tǒng)資源,這樣系統(tǒng)資源可最大程度地被利用,相應(yīng)地,每個(gè)用戶(hù)的消耗就將減到最小。那么Linux作為一個(gè)多用戶(hù)多任務(wù)操作系統(tǒng),經(jīng)常要同時(shí)處理多用戶(hù)共同使用的場(chǎng)合,用戶(hù)管理是系統(tǒng)管理的一個(gè)重要方面,有助于保證系統(tǒng)的正常運(yùn)轉(zhuǎn)。
在linux中用戶(hù)分為不同的類(lèi)型,權(quán)限有所區(qū)別,其所能完成的任務(wù)也就不同。Linux系統(tǒng)中通常有三種類(lèi)型的用戶(hù):超級(jí)用戶(hù),普通用戶(hù)和系統(tǒng)用戶(hù)。超級(jí)用戶(hù)的UID和GID都是0,是系統(tǒng)最高權(quán)限的擁有者,root帳號(hào)權(quán)限管理不善就會(huì)造成系統(tǒng)安全的隱患。在對(duì)系統(tǒng)操作時(shí)盡量避免使用root登陸,也應(yīng)該盡量避免直接使用root帳號(hào)對(duì)系統(tǒng)進(jìn)行配置和操作。普通用戶(hù)的UID從500開(kāi)始,系統(tǒng)用戶(hù)的UID從1-499。
在linux系統(tǒng)下,對(duì)用戶(hù)和用戶(hù)組進(jìn)行添加、修改、刪除等操作的最終目的都是通過(guò)修改用戶(hù)和組的配置文件來(lái)實(shí)現(xiàn)的,這些主要配置文件主要有:/etc/passwd、/etc/shadows、/etc/groups、/etc/gshadow、/etc/skel目錄等。
/etc/passwd是用戶(hù)帳號(hào)信息文件,/etc/shadows是用戶(hù)帳號(hào)密碼的加密文件,/etc/groups是用戶(hù)組信息文件,/etc/gshadow是用戶(hù)組帳號(hào)的密碼加密文件,/etc/skel目錄是用來(lái)初始化用戶(hù)的主目錄。
用戶(hù)要使用Linux的系統(tǒng)資源時(shí),先申請(qǐng)一個(gè)賬號(hào),輸入完帳號(hào)和口令時(shí),linux會(huì)先在/etc/passwd文件中查找是否有這個(gè)帳號(hào),如果沒(méi)有則跳出,如果有的話,會(huì)讀取該帳號(hào)的UID和GID,同時(shí)讀取該帳號(hào)的根目錄和shell。然后在/etc/shadow中找出剛剛輸入的帳號(hào)和UID,核對(duì)輸入密碼是否正確。一切正確用戶(hù)就可以登錄到當(dāng)前用戶(hù)shell。管理員也可以利用用戶(hù)賬號(hào)幫進(jìn)行控制和監(jiān)測(cè),組織文件及安全性保護(hù)。常用的用戶(hù)管理主要涉及新用戶(hù)賬號(hào)的創(chuàng)建,賬號(hào)刪除和已有賬戶(hù)屬性的修改。
只有root用戶(hù)才具有管理系統(tǒng)中的用戶(hù)的權(quán)限,在Linux的圖形界面下可利用“主菜單”下“系統(tǒng)設(shè)置”中的“用戶(hù)和組群”工具來(lái)實(shí)現(xiàn)對(duì)用戶(hù)和組管理,但是鑒于在Linux圖形界面下用戶(hù)管理有一定局限性,所以本文重點(diǎn)介紹在字符模式下的用戶(hù)管理。
在字符模式下要?jiǎng)?chuàng)建一個(gè)新賬戶(hù)時(shí)可使用的命令是useradd,其可以直接缺省用戶(hù)密碼,也可以在創(chuàng)建賬戶(hù)的同時(shí)分配好用戶(hù)的ID值,主目錄,登陸shell等資源。Useradd命令的格式:useradd[-G group][-u UID][-c注釋][-d主目錄](méi)[-s shell]等username
參數(shù)的意義:
-u<UID>指定用戶(hù)ID。
-G<group>定用戶(hù)所屬的附加群組。
-c<注釋>添加備注文字。備注文字會(huì)保存在passwd的第5列位置中。
-d<主目錄>指定用戶(hù)登入時(shí)的主目錄。
-e<密碼有效期限>指定帳號(hào)的有效期限。
-f<密碼緩沖天數(shù)> 指定在密碼過(guò)期后多少天關(guān)閉該帳號(hào)。
-g<群組> 指定用戶(hù)所屬的群組。
-r建立ID值小于500的系統(tǒng)帳號(hào)。
-s<shell> 指定用戶(hù)進(jìn)入時(shí)后所使用的shell。
例如:#useradd zhangsan;僅創(chuàng)建名為zhangsan的用戶(hù),而不指定相關(guān)資源。這個(gè)用戶(hù)還不能夠登錄,因?yàn)檫€沒(méi)給它設(shè)置初始密碼,而沒(méi)有密碼的用戶(hù)是不能夠登錄系統(tǒng)的。
又如:#useradd-d/home/lisi lisi
#passwd lisi
輸入新密碼:6位以上兩次;創(chuàng)建名為lisi的用戶(hù)同時(shí)指定他的主目錄為/home/lisi,并為該賬號(hào)設(shè)置密碼,兩次密碼的輸入在屏幕上不顯示,但是出錯(cuò)的話會(huì)有提示。
用戶(hù)賬戶(hù)賬戶(hù)創(chuàng)建之后可以在使用more,cat,less等命令查看用戶(hù)信息配置文件/etc/passwd,例如:/etc/passwd中顯示lisi:x:501:501::/home/lisi:/bin/bash,該文件中以七列分別顯示了,“用戶(hù)名:口令:UDI:GID:全稱(chēng):主目錄:登錄Shell”。在/etc/passwd文件的口令字段中經(jīng)常會(huì)出現(xiàn)“x”字符,說(shuō)明該系統(tǒng)使用了shadow技術(shù),把真正的用戶(hù)密碼加密后以投影的方式存放到/etc/shadow文件中。
與/etc/passwd文件不同,/etc/shadow文件是只有root級(jí)別才有權(quán)限進(jìn)行查看和修改./etc/shadow文件中的每一行行與/etc/passwd中的每一行賬戶(hù)之間是一一對(duì)應(yīng),一般情況下系統(tǒng)是默認(rèn)使用shadow功能,若沒(méi)有啟動(dòng)的話,用戶(hù)可以使用pwconv命令使shadow有效。
在創(chuàng)建用戶(hù)之后可利用usermod修改用戶(hù)帳號(hào)屬性。其命令格式為:
usermod[-c說(shuō)明][-d主目錄](méi)[-e時(shí)間][-f天數(shù)][-g group name>][-G group name][-l<帳號(hào)名稱(chēng)>][-s<shell>][-u<UID>][-L/U用戶(hù)名][用戶(hù)帳號(hào)],命令中使用的相關(guān)參數(shù)類(lèi)似于useradd命令。
使用方式例如:
#usermod-d/var/lisi lisi;將用戶(hù)lisi的主目錄修改到/var/lisi之下
#usermod-L lisi;將用戶(hù)lisi鎖定,同樣也可使用#passwd-l lisi來(lái)實(shí)現(xiàn)相同的效果。
#usermod-U lisi;將用戶(hù)lisi解鎖,同樣也可使用#passwd-u lisi來(lái)實(shí)現(xiàn)相同的效果。
如果想刪除已有的用戶(hù)可使用userdel命令,其格式為:
userdel[選項(xiàng)][用戶(hù)帳號(hào)]
userdel可刪除用戶(hù)帳號(hào)與相關(guān)的用戶(hù)主目錄,郵件通知等文件。若中間不加-r等選項(xiàng),則刪除用戶(hù)帳號(hào)的同時(shí),保留相關(guān)文件。一般在刪除用戶(hù)賬戶(hù)時(shí)需要將有關(guān)文件一并刪除,使用方式例如:
#usermdel-r lisi;將用戶(hù)lisi賬戶(hù)相關(guān)內(nèi)容全部刪除
在日常管理中會(huì)遇到同時(shí)創(chuàng)建一批用戶(hù)的情況,在Linux中可利用系統(tǒng)命令的方式批量的創(chuàng)建新用戶(hù)。首先仿造/etc/passwd中用戶(hù)信息的形式,自己創(chuàng)建一個(gè)新文件,文件名不限,例如要批量創(chuàng)建60名用戶(hù)賬戶(hù),文件名設(shè)為userlist.txt:
#vi userlist.txt
user01:x:600:600::/home/user01:/bin/bash
user02:x:601:601::/home/user02:/bin/bash
┊
User60:x:659:659:/home/user60:/bin/bash
然后以root的身份執(zhí)行:
#newusers<userlist.txt,該命令是將userlist.txt文件追加到/etc/passwd文件中,此時(shí)可以查看/etc/passwd文件以確定剛新建的60個(gè)新用戶(hù)是否已經(jīng)在配置文件中顯示信息。
接著執(zhí)行命令#pwuncove,其目的是暫時(shí)取消shadow的功能,以便接下來(lái)可以將新設(shè)置的用戶(hù)密碼文件調(diào)入到/etc/shadow中。
下一步該創(chuàng)建用戶(hù)密碼文件命名為userpasswd.txt,做法如下:
#vi userpasswd.txt
#user1:密碼自定
#user2:密碼自定
#user3:密碼自定
┊
#user60:密碼自定
此時(shí)的60位新用戶(hù)的密碼可以相同也可不同,亦可缺省。接著執(zhí)行命令:
#chpasswd<userpasswd.txt,將新密碼調(diào)入到/etc/shadow文件中。
最后執(zhí)行#pwcove恢復(fù)shadow功能即可。采用以上方法可以輕松的一次創(chuàng)建多名用戶(hù)和密碼。
用戶(hù)組是具有相同特征的用戶(hù)的集合,Linux中用戶(hù)組的相關(guān)信息存放在配置文件/etc/group中,一共有四項(xiàng),依次為:
群組名稱(chēng):群組密碼:群組ID:支持帳號(hào)的名稱(chēng)
常用的組管理包括組的建立,修改組屬性,組的刪除及用戶(hù)添加到組等操作。
(1)添加組:#groupadd選項(xiàng)用戶(hù)組。
例如:#groupadd-r jack;
#tail-1/etc/group;創(chuàng)建系統(tǒng)用戶(hù)組jack,查看該小組的GID是否小于500#tail-1/etc/group;顯示jack:x:101
修改用戶(hù)組屬性:
(2)改變用戶(hù)組名“#groupmod-n新名舊名”。
使用方法:#groupmod-n tom jack;將用戶(hù)組jack的名字修改為新名tom。
(3)刪除組:#groupdel用戶(hù)組名在刪除一個(gè)小組時(shí),如果其中還有用戶(hù),應(yīng)先刪除用戶(hù)再刪除小組。
(4)添加/刪除用戶(hù)到指定的組:#gpasswd-a/-d用戶(hù)賬戶(hù)用戶(hù)組名;
使用方法:#gpasswd-a/-d yoyo tom;將用戶(hù)yoyo添加/刪除到小組tom中。
gpasswd命令也可用于為小組加密碼,通常情況下不需要設(shè)置或修改小組密碼,通常不需設(shè)定,因?yàn)槲覀兒苌偈褂萌航M登錄。不過(guò)這個(gè)密碼也被記錄在/etc/shadow中了。
在復(fù)雜的環(huán)境中,所有的用戶(hù)和組的管理都可以在控制臺(tái)中完成,可以寫(xiě)成腳本。也可以使用Webmin等工具以圖形化的方式管理用戶(hù)和組。Linux中的用戶(hù)管理不要吝惜對(duì)組的使用,不要害怕創(chuàng)建很多組。應(yīng)該根據(jù)資源訪問(wèn)權(quán)限而不是基于業(yè)務(wù)單位去創(chuàng)建組。
[1]王存健,張建正.嵌入式Linux下Qt/Embedded的應(yīng)用[J].嵌入式系統(tǒng),2007,04.
[2]王麗潔.嵌入式Linux的圖形界面技術(shù)研究與實(shí)現(xiàn)[D].國(guó)防科學(xué)技術(shù)大學(xué):軟件工程(碩士學(xué)位論文),2006,11,01.
[3]謝蓉,巢愛(ài)棠編著.Linux基礎(chǔ)及應(yīng)用[M].中國(guó)鐵道出版社,2005,2(第一版).