serdel是什麼 userdel 是一個底層用於刪除用戶的工具。在 Debian 上,我們通常會使用 deluser 命令。userdel 會查詢系統賬戶文件,例如 /etc/password 和 /etc/group。那麼它會刪除所有和用戶名相關的條目。在我們刪除它之前,用戶名必須存在。 如何使 ...
serdel是什麼
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命令的更多細節。