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