How to Create Home Directory for Existing User in Linux

Last updated: June 17, 2022

By default when you create a user in Linux, users default home directory is created under /home. If you noticed on Ubuntu and Debian derivated distribution useradd command won't create a home directory by default.

Let's think of a situation where you have already created a user but the home directory is missing. In this tutorial, I will show you how to create a default home directory for an existing user in Linux.

Create default home directory for existing user

Here I am using Ubuntu 22.04 and going to create a user named ' bob' using useradd command:

$ sudo useradd bob

Useradd command has added an entry home directory in /etc/passwd file

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

If I try to login as the user using su -, it shows that it's logging in with Home=/. This means the user home directory is not created.

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

In Linux, a user's default home directory is /home. To create a default home directory use mkhomedir_helper command.

Make sure to run mkhomedir_helper command as root or user with sudo access.

$ sudo mkhomedir_helper bob

The previous command creates a home directory named "/home/bob" and user settings files.

$ 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

For a graphical environment (such as GNOME or XFCE ), if you are missing subdirectories in the home directory, the user needs to log out and log in back.

When the user login the first time all subdirectories such as Pictures, Documents, Videos, and Downloads folders can be created in the home directory.

Another method is to delete the user and create a new user using -m or --create-home option.

The following command creates a home folder (-m)  and  set the specified home directory (-d) as the value for the new user's login:

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

Conclusion

To conclude, If you are a Ubuntu fan you should be now using adduser command, it's recommended by Debian. If you have an existing user, now you should be able to add default directory.

Thanks for reading and please drop your suggestions on the below comment section.

Related Read: How to Delete a User with Home Directory on Ubuntu

About The Author

Bobbin Zachariah

Bobbin Zachariah

Bobbin started his career in IT in the year 2000 as a computer science instructor and worked as a Linux system engineer and senior analyst roles. Currently working in DevOps environments to increase efficiency and improve delivery time in AWS Cloud infrastructure. He is certified in RHEL, CCNA, and MCP and holds a Masters's in computer science. When in his free time love playing cricket, blogging, and listening to music.

SHARE

Comments

Please add comments below to provide the author your ideas, appreciation and feedback.

Leave a Reply

Leave a Comment