Creating Home Directories with mkhomedir_helper (with examples)
- Linux
- November 5, 2023
Use case 1: Creating a home directory based on /etc/skel
with umask 022
Code:
sudo mkhomedir_helper username
Motivation:
When creating a new user account, it is usually necessary to create a home directory for the user. The mkhomedir_helper
command is used to automate this process. In this use case, we want to create a home directory for a user based on the default skeleton directory (/etc/skel
) with a umask value of 022. This ensures that the user’s home directory is created with the correct permissions.
Explanation:
The mkhomedir_helper
command is run with the sudo
prefix to execute it with administrative privileges. The username
argument specifies the name of the user for whom the home directory needs to be created. This command will create a home directory for the specified user based on the contents of the /etc/skel
directory.
Example Output:
Creating home directory for username ...
Home directory created: /home/username
Use case 2: Creating a home directory based on /etc/skel
with customized permissions
Code:
sudo mkhomedir_helper username 037
Motivation:
In some cases, it may be necessary to create a home directory with customized permissions, different from the default permissions set by the /etc/skel
directory. The mkhomedir_helper
command allows us to specify these permissions while creating the home directory.
Explanation:
The second argument (037
) passed to the mkhomedir_helper
command represents the permissions that will be assigned to the user’s home directory. In this example, the permissions 037
are provided. These permissions are represented in octal format, with the first digit representing the owner’s permissions, the second digit representing the group’s permissions, and the third digit representing other users’ permissions. In this case, the owner will have all permissions (0), the group will have read permission only (3), and other users will have no permissions.
Example Output:
Creating home directory for username ...
Home directory created: /home/username
Use case 3: Creating a home directory using a custom skeleton directory
Code:
sudo mkhomedir_helper username umask path/to/skeleton_directory
Motivation:
Sometimes, the default skeleton directory (/etc/skel
) may not contain the desired files or configuration for a user’s home directory. In such cases, we can provide a custom skeleton directory that contains the desired files and configurations.
Explanation:
In this use case, the umask
argument is used to specify the permissions for the user’s home directory, just like in the previous use case. The path/to/skeleton_directory
argument is used to provide the path to the custom skeleton directory that should be used instead of the default /etc/skel
directory.
Example Output:
Creating home directory for username ...
Home directory created: /home/username
By utilizing the mkhomedir_helper
command with different arguments, we can create home directories for users based on default or custom skeleton directories, and customize the permissions of these directories according to our needs.