Skip to main content

Command Palette

Search for a command to run...

How to Create the User in Linux

Updated
6 min read

Creating a user in Linux is a fundamental skill you’ll need if you manage a Linux system. Whether you’re setting up a new server, sharing your computer, or managing permissions, knowing how to add users properly is essential. In this guide, I’ll walk you through the process of creating users in Linux using simple commands and explain the options you can use to customize each user.

You don’t need to be a Linux expert to follow along. I’ll keep things clear and straightforward, so you can confidently add users and understand what each step does. By the end, you’ll know how to create users, assign passwords, and manage user groups effectively.

Understanding Linux Users and Why They Matter

Linux is a multi-user operating system, meaning many people can use the same machine with different accounts. Each user has a unique identity, permissions, and home directory. This setup helps keep files secure and organized.

Here’s why creating users correctly matters:

  • Security: Each user has specific permissions, limiting access to files and commands.
  • Organization: Users have separate home directories to store personal files.
  • Accountability: Actions on the system can be traced back to individual users.
  • Resource Management: You can control what resources each user can access.

When you create a user, you’re essentially telling Linux to set up a new identity with its own settings and permissions.

Basic Command to Create a User in Linux

The most common command to create a user is useradd. It’s a powerful tool that lets you add users from the command line.

How to Use useradd

To create a simple user, open your terminal and type:

sudo useradd username

Replace username with the name you want for the new user. However, this command alone doesn’t create a home directory or set a password, so the user won’t be able to log in yet.

Creating a User with a Home Directory

To create a user with a home directory, add the -m option:

sudo useradd -m username

This command creates a home directory at /home/username where the user can store files.

Setting a Password for the User

After creating the user, you need to set a password:

sudo passwd username

You’ll be prompted to enter and confirm the new password. This step is crucial because, without a password, the user cannot log in.

Summary of Basic Steps

  • Use sudo useradd -m username to create a user with a home directory.
  • Use sudo passwd username to set the user’s password.

Advanced Options When Creating Users

The useradd command has many options to customize the user account. Here are some useful ones:

  • -d /path/to/home — Specify a custom home directory.
  • -s /bin/bash — Set the user’s default shell (e.g., bash, zsh).
  • -c "User Name" — Add a comment or full name for the user.
  • -G group1,group2 — Add the user to additional groups.
  • -e YYYY-MM-DD — Set an expiration date for the user account.
  • -u UID — Specify a custom user ID.

Example: Creating a User with Custom Shell and Groups

sudo useradd -m -s /bin/zsh -G sudo,developers -c "John Doe" johndoe

This command creates a user johndoe with:

  • A home directory
  • Zsh as the default shell
  • Membership in sudo and developers groups
  • A comment "John Doe"

After this, don’t forget to set the password with passwd.

Using adduser – A More User-Friendly Alternative

On many Linux distributions, especially Debian-based ones like Ubuntu, there’s a command called adduser. It’s a friendlier script that guides you through the user creation process.

How to Use adduser

Simply type:

sudo adduser username

You’ll be prompted to enter the password, full name, room number, work phone, home phone, and other optional info. It also automatically creates the home directory and sets permissions.

This method is easier for beginners because it handles many details for you.

Managing User Groups

Groups in Linux help manage permissions for multiple users. When you create a user, you can assign them to one or more groups.

Default Group

By default, a user is assigned to a group with the same name as their username. This group is their primary group.

Adding Users to Additional Groups

Use the -G option with useradd or the usermod command to add users to groups.

Example:

sudo usermod -aG sudo,developers username
  • -aG appends the user to the listed groups.
  • This is useful for giving users administrative rights or access to shared resources.

Listing Groups for a User

To see which groups a user belongs to, use:

groups username

Setting User Permissions and Security Best Practices

Creating a user is just the start. You want to make sure the user has the right permissions and security settings.

Password Policies

  • Use strong, unique passwords.
  • Consider setting password expiration with chage:
sudo chage -M 90 username

This forces the user to change their password every 90 days.

Locking and Unlocking Users

To temporarily disable a user account:

sudo usermod -L username

To unlock:

sudo usermod -U username

Removing Users

If you need to delete a user and their home directory:

sudo userdel -r username

Be careful with this command as it permanently deletes user data.

Troubleshooting Common Issues When Creating Users

Sometimes, you might face issues when creating users. Here are common problems and how to fix them:

  • User already exists: Check existing users with cat /etc/passwd.
  • No home directory created: Use -m option with useradd.
  • User cannot log in: Make sure the password is set and the shell is valid.
  • Permission denied: Run commands with sudo or as root.

Summary Table of Commands

CommandDescriptionExample
useradd -m usernameCreate user with home directorysudo useradd -m alice
passwd usernameSet user passwordsudo passwd alice
adduser usernameInteractive user creationsudo adduser bob
usermod -aG group usernameAdd user to groupssudo usermod -aG sudo alice
userdel -r usernameDelete user and home directorysudo userdel -r bob

Conclusion

Creating users in Linux is straightforward once you know the commands and options. Whether you use useradd for precise control or adduser for an interactive approach, you can set up users with home directories, passwords, and group memberships easily.

Remember to follow security best practices like setting strong passwords and managing group permissions carefully. With these skills, you can manage your Linux system users confidently and securely.


FAQs

How do I create a user with a specific home directory?

Use sudo useradd -m -d /custom/path username to create a user with a custom home directory.

Can I create a user without a password?

Yes, but the user won’t be able to log in until you set a password with passwd.

What is the difference between useradd and adduser?

useradd is a low-level command; adduser is a friendlier script that prompts for details interactively.

How do I add a user to the sudo group?

Use sudo usermod -aG sudo username to add a user to the sudo group.

How do I delete a user and their files?

Run sudo userdel -r username to remove the user and their home directory completely.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts