如何在 Linux 中為現有用戶創建主目錄

默認情況下,當您在 Linux 中創建用戶時,用戶默認主目錄創建在 /home 下。 如果您在 Ubuntu 和 Debian 派生髮行版上註意到 useradd 命令默認不會創建主目錄。

讓我們想想您已經創建了一個用戶但主目錄丟失的情況。 在本教程中,我將向您展示如何為 Linux 中的現有用戶創建默認主目錄。

為現有用戶創建默認主目錄

在這裡,我使用 Ubuntu 20.04 並使用 useradd 命令創建一個名為“bob”的用戶:

$ sudo useradd bob

useradd 命令在 /etc/passwd 文件中添加了一個入口主目錄

$ grep bob /etc/passwd
bob:x:1003:1003::/home/bob:/bin/sh
$

如果我嘗試以用戶身份登錄 su -,這表明它是 logging in with Home=/. 這意味著未創建用戶主目錄。

$ su - bob
Password:
No directory, logging in with HOME=/
$

在 Linux 中,用戶的默認主目錄是 /home。 要創建默認主目錄,請使用 mkhomedir_helper 命令。

確保運行 mkhomedir_helper 以 root 或用戶身份命令 sudo 使用權。

$ sudo mkhomedir_helper bob

前面的命令創建一個名為“/home/bob”的主目錄和用戶設置文件。

$ ls -al /home/bob
total 20
drwxr-xr-x 2 bob bob 4096 Jun 1 02:26 .
drwxr-xr-x 5 root root 4096 Jun 1 02:26 ..
-rw-r--r-- 1 bob bob 220 Jun 1 02:26 .bash_logout
-rw-r--r-- 1 bob bob 3771 Jun 1 02:26 .bashrc
-rw-r--r-- 1 bob bob 807 Jun 1 02:26 .profile

對於圖形環境(例如 GNOME 或 XFCE ),如果主目錄中缺少子目錄,則用戶需要註銷並重新登錄。

當用戶第一次登錄時,可以在主目錄中創建所有子目錄,如圖片、文檔、視頻和下載文件夾。

另一種方法是刪除用戶並使用創建新用戶 -m 或者 --create-home 選項。

以下命令創建一個主文件夾 (-m) 並將指定的主目錄 (-d) 設置為新用戶登錄的值:

$ sudo useradd -m -d /home/bob01 bob01

結論

總而言之,如果您是 Ubuntu 粉絲,您現在應該使用 添加用戶 命令,這是 Debian 推薦的。 如果您有一個現有用戶,現在您應該能夠添加默認目錄。

感謝閱讀,請將您的建議放在下面的評論部分。