如何在 Linux 中刪除用戶帳戶及其家目錄

身為Linux系統的系統管理員,當用戶帳號長時間處於休眠狀態,或者用戶因各種原因離開組織或公司時,您可能需要移除用戶的帳號。

在Linux系統上移除用戶帳號時,同時也應該移除他們的家目錄,以釋放存儲設備上的空間,供新的系統用戶或其他服務使用。

在本教程中,我將帶您了解如何刪除用戶帳號及其家目錄的步驟。

要學習如何在Linux系統上創建用戶帳號和管理它們,請閱讀以下文章,從下面的鏈接中獲取:

如何刪除/移除帶有家目錄的用戶帳號

為了示範,首先我將在我的系統上創建兩個用戶帳戶,即用戶tecmint和用戶linuxsay,並為他們分別創建家目錄/home/tecmint/home/linusay,使用adduser命令。

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay
Create New User Accounts in Linux

從上面的截圖中,我使用了adduser命令在Linux上創建用戶帳戶。你也可以使用useradd命令,兩者都是相同的,但它們之間的主要區別在於它們的預期用途和用戶界面。

adduser”命令是一個高級接口,用於向系統添加用戶,執行任何必要的設置,並使用默認設置為用戶創建家目錄。

另一方面,“useradd”是一個低級實用程序,用於向系統添加用戶並更新用戶信息。它不會默認創建用戶的家目錄,需要管理員手動指定額外的選項。

現在讓我們進一步了解如何使用deluser(對於Debian及其衍生品)和userdel(對於基於RedHat的系統)命令在Linux中刪除或移除用戶帳戶。

sudo deluser --remove-home username
sudo userdel -r username

上面的命令將刪除用戶的家目錄以及他們的帳戶。

在配置文件中,deluseruserdel 命令的指令決定了當您運行這些命令時,它們將如何處理所有用戶文件和目錄。

讓我們來看看 deluser 命令的配置文件,對於 Debian 衍生版本如 Ubuntu、Kali 和 Mint,該文件是 /etc/deluser.conf,而對於 RHEL/CentOS/Fedora 用戶,您可以查看 /etc/login.defs 文件。

這些配置中的值是默認的,可以根據您的需要進行更改。

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]
Del User Configuration

要刪除一個帶有家目錄的用戶,您可以使用以下步驟在您的 Linux 服務器機器上進行高級操作。當用戶登錄到服務器時,他們使用服務並運行不同的進程。需要注意的是,只有當用戶沒有登錄到服務器時,才能有效地刪除用戶。

如何在 Linux 中鎖定用戶帳戶

要在 Linux 中鎖定用戶帳戶,您可以使用 passwd 命令,後跟 -l--lock 選項和用戶名。鎖定用戶帳戶可以防止用戶登錄,同時仍然保留帳戶及其關聯文件。

sudo passwd -l username
OR
sudo passwd -lock username
Lock User Account Password in Linux

要解鎖帳戶,您可以再次使用 passwd 命令,並使用 -u 選項。

sudo passwd -u username

如何在 Linux 中查找並終止用戶運行的進程

在Linux中,您可以使用ps命令來查找與特定用戶相關的進程,並使用kill命令來終止這些進程。

查找用戶進程

使用ps命令,加上-u標誌後跟用戶名,可以列出特定用戶的進程。

ps -u username

然後,您可以使用以下命令以完整的格式列出進程,包括用戶名、PID(進程ID)、PPIDs(父進程ID)、使用的終端、進程狀態和命令路徑:

ps -f --pid $(pgrep -u tecmint)
Find All Running Processes of the User

終止用戶進程

一旦找到用戶的所有運行進程,您可以使用killall命令來終止這些運行進程,如下所示。

killall -9 -u tecmint

-9SIGKILL信號的信號號碼,或者可以使用-KILL代替-9,而-u定義了用戶名。

注意:在較新的RedHat/CentOS 7.x版本和Fedora 21+中,您可能會收到錯誤消息:

-bash: killall: command not found

要修復此類錯誤,您需要安裝psmisc包,如下所示:

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

如何在刪除前備份用戶數據

在刪除Linux系統上的用戶帳戶之前備份用戶數據,您可以遵循以下命令。

sudo mkdir /backup
sudo cp -r /home/username /backup

選擇性地,您可以創建用戶數據的壓縮存檔以節省存儲空間。我使用了tar命令來創建用戶家目錄的備份,如下所示:

sudo tar -zcvf /backup/username_backup.tar.gz /backup/username
Backup User Home Directory in Linux

如何在Linux中刪除/移除用戶文件

現在您可以安全地刪除用戶及其家目錄,要刪除系統上所有用戶文件,請在以下命令中使用--remove-all-files選項:

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]
Delete User Account with Home Directory

總結

這就是在Linux系統上刪除用戶及其家目錄的全部操作。我相信這個指南足夠容易理解,但如果您有任何疑問或想要添加更多想法,請留下評論。

Source:
https://www.tecmint.com/delete-remove-a-user-account-with-home-directory-in-linux/