使用者管理,主要的工作就是建立一個合法的使用者帳戶、設定和系統管理使用者的密碼、修改使用者帳戶的屬性以及在必要時刪除已經廢棄的使用者帳號。
1. 增加一個新使用者
在Linux系統中,只有root使用者才能夠建立一個新使用者,如下的命令將建立一個登入名稱user1的使用者。
# useradd user1
但是,這個使用者還不能夠登入,因為還沒給它設定初始密碼,而沒有密碼的使用者是不能夠登入系統的。在預設情況下,將會在/home目錄下建立一個與使用者名稱相同的使用者主目錄。如果需要另外指定使用者主目錄的話,那麼可以使用如下命令:
# useradd -d /home/xf user1
同時,該使用者登入時將獲得一個Shell程式:/bin/bash,而假如你不想讓這個使用者登入,也就可以指定該使用者的Shell程式為:/bin/false,這樣該使用者即使登入,也不能夠執行Linux下的命令:
# useradd -s /bin/false user1
在Linux中,新增一個使用者的同時會建立一個新組,這個組與該使用者同名,而這個使用者就是該組的成員。如果你想讓新的使用者歸屬於一個已經存在的組,則可以使用如下命令:
# useradd -g user user1
這樣該使用者就屬於user組的一員了。而如果只是想讓其再屬於一個組,那麼應該使用:
# useradd -G user user1
完成了這一操作後,你還應該使用passwd命令為其設定一個初始密碼。
2. 刪除一個使用者
刪除使用者,只需使用一個簡單的命令“userdel 使用者名稱”即可。不過最好將它留在系統上的檔案也刪除掉,你可以使用“userdel -r 使用者名稱”來實現這一目的。
3. 修改使用者屬性
在前面我們看到了在建立一個使用者的時候如何指定它的使用者主目錄,如何指定它的Shell,如何設定它所屬的組…等等。在Linux中提供了一個命令來實現:
usermod -g組名 -G 組名 -d 使用者主目錄 -s 使用者Shell
還有一種直接的方法,那就是修改/etc/passwd檔案,在這個檔案中每個使用者佔用一行,它的內容為:
使用者名稱:密碼:使用者ID:組ID:使用者全名:使用者主目錄:使用者Shell
不過值得注意的是,密碼這一項通常是用一個*號代替的,你是看不到的。
4. 增加一個組
還記得Linux的檔案可以為同組的人、非同組的人設定不同的存取權限嗎?我們可以根據自己的需要建立使用者組:
groupadd 組名
5. 刪除一個組
同樣的,我們有時會需要刪除一個組,它的命令就是groupdel 組名。
6. 修改群組成員
如果我們需要將一個使用者加入一個組,只需編輯/etc/group檔案,將使用者名稱寫到組名的後面。例如將newuser使用者加入到softdevelop組,只需找到softdevelop這一行:
softdevelop:x:506:user1,user2
然後在後面加上newuser,形成:
softdevelop:x:506:user1,user2,newuser
另外,在Red Hat Linux中還提供一個圖形化的使用者管理工具:userconf,通過它可以更直接地進行使用者管理。
兩個重要檔案:passwd與group
在linux的安全機制裡,/etc/passwd與/etc/group這兩個檔案佔著非常重要的地位。它們控制著linux的使用者和組一些重要設定。
◆/etc/passwd檔案說明 (用於設定使用者的屬性)
可用 vi /etc/passwd 查看
在passwd的檔案裡,每一行被冒號(":")分成7個部分,分別是:
[使用者名稱]:[密碼]:[UID]:[GID]:[身份描述]:[主目錄]:[登入shell]
其中:
[UID]雖然是系統用來標誌檔案歸屬,確定各種許可權的標誌,但這個地區的內容並不要求唯一的。比較常見而又與安全問題相關的一個例子是有多個UID和GID均為0的使用者帳號。注意到在該檔案最後一行還有一個UID和GID為0的使用者imnotroot,雖然它聲稱自己不是root,但是它卻有和root完全相同的許可權,因為系統並非根據[使用者名稱],而是根據UID和GID來分使用者的權力的。所以,這種情況無疑為系統埋下了安全的炸彈。但是,當imnorroot做鎖定螢幕等操作的時候,如果它的密碼和root的不一樣,它將無法解鎖,因為系統只是查到第一個UID為0的使用者(自然是root)後,就不在往下尋找了——它當UID也是唯一的。
[GID]使用者預設的組ID,這個ID可以在檔案 /etc/group裡查到對應的組名。
<注意>:[UID]和[GID]小於500的一般都是系統自己保留,不做普通使用者和組的標識的,所以新增加的使用者和組一般都是UID和GID大於500的。
◆/etc/group檔案說明
vi /etc/group 查看其內容
它總共分四個部分:
[組名]:[密碼域]:[GID]:[組員例表]