1. 程式人生 > >Linux系統使用userdel命令刪除使用者

Linux系統使用userdel命令刪除使用者

userdel是什麼

userdel 是一個底層用於刪除使用者的工具。在 Debian 上,我們通常會使用 deluser 命令。userdel 會查詢系統賬戶檔案,例如 /etc/password 和 /etc/group。那麼它會刪除所有和使用者名稱相關的條目。在我們刪除它之前,使用者名稱必須存在。

如何使用userdel

由於 userdel 會修改系統賬戶檔案,那麼我們需要root特權來執行它。不然我們會遇到一個報錯資訊“只有root許可權才能執行這項操作”或者類似的資訊。在我們得到特權後,我們可以通過輸入 userdel 從你的控制檯刪除使用者。下面是一個預設使用 userdel 的樣例。

$ sudo userdel pasadena

或者

# userdel pasadena

正如你所見,我們不能沒有root許可權而刪除使用者 pasadena。當我們有許可權時,系統不會給出錯誤資訊,這意味著使用者已經成功刪除。

完全刪除使用者家目錄

不帶選項使用 userdel,只會刪除使用者。使用者的家目錄將仍會在/home目錄下。

當我們進入/home目錄時,我們仍舊可以看到ID 1002擁有 pasadena 資料夾。已建立的使用者通常會有一個與使用者名稱相同的組名。1002是 pasadena 使用者名稱的 UID 和 pasadena 組名的 GID。

為了在刪除使用者時完全刪除家目錄,我們可以使用 -r 選項。這個選項同樣會刪除使用者的郵件池,如果存在的話。

強制刪除一個使用者

userdel 提供了 -f 選項來強制刪除使用者。甚至當使用者已經登入 Linux 系統時此選項仍舊生效。請看一下示例截圖。

截圖的上面顯示使用者 pasadena 已經登入了系統。它被標記的程序6218是 SSHD 程序。而當我們用“userdel -f pasadena”只會顯示已經登入的要被刪除的使用者資訊。命令本身已經成功。如果我們使用cat 命令檢視/etc/passwd的內容,我們看不到到使用者 pasadena 存在了。他的家目錄還存在但是所有者只能顯示為數字ID。

有一件事我們必須瞭解,帶 -f 選項的 userdel 不會斷開 該使用者已有的 SSH 連結。因此,即使使用者已經不存在,但實際上仍是登入狀態,並且是活躍使用者。但是當用戶登出後不可再登入,因為使用者已經被刪除。

因此所以這個選項使用起來有些危險,因為它會使你的系統進入不一致的狀態。

總結

userdel 是一個 Linux 系統內部刪除使用者的工具。userdel同樣是deluser命令的後端,這是一個用perl編寫的刪除使用者的指令碼。如往常一樣,你可以輸入man userdel來檢視關於userdel命令的更多細節。