If you are new to managing a Debian or Ubuntu system or server, you will quickly run into a frustrating roadblock. You need to create a new user account, so you search the web for instructions. Half of the tutorials tell you to type useradd, while the other half tell you to type adduser.
Are they the same thing? Did someone just misspell a command?
The short answer is no. They are two completely different tools. While both commands create a new user, they do it in very different ways. Here is the plain-English breakdown of how they work, how they differ, and which one you should actually use.
The Problem with Linux User Creation
To understand why two commands exist, you have to understand what it actually takes to make a user in Linux. Creating an account isn’t just about picking a name. The system has to:
- Add the name to a system file.
- Assign a unique ID number.
- Create a secure password.
- Build a “home” folder for the user’s files.
- Copy standard starting files into that new folder.
One command expects you to do all this manual labor yourself. The other does it for you automatically.
1. What is useradd? (The Bare-Bones Mechanic)
The useradd command is the traditional, native tool for creating users. It is built directly into almost every version of Linux in existence.
However, useradd is incredibly literal and lazy. If you type sudo useradd john, the system will create a user named “john” and then immediately stop.
What useradd fails to do on its own:
- It does not prompt you to set a password (leaving the account locked).
- It does not create a /home/john folder for the user to store files.
- It does not assign a default command-line shell (like Bash).
To make a fully functioning user with useradd, you have to type a long string of modifiers, followed by a separate command just to set the password. Because it requires no human interaction, it is perfect for automated computer scripts, but terrible for everyday human administrators.
2. What is adduser? (The Friendly Wizard)
The adduser command is essentially a helpful robot built on top of useradd. It is standard on Debian and Ubuntu-based systems.
When you type sudo adduser john, the command launches an interactive, step-by-step wizard. It asks you questions in plain English and sets everything up automatically.
What adduser does for you:
- It automatically creates the /home/john directory.
- It automatically copies default profile files into that folder.
- It immediately stops and asks you to type in a new secure password.
- It gives you the option to add the user’s full real name and contact info.
It is designed entirely for human beings. It takes the complicated useradd process and turns it into a simple, one-minute interview.
Feature Comparison
Here is a quick reference guide to see how the two commands stack up against each other:
| Feature | useradd | adduser |
| Availability | Every Linux distribution | Mostly Debian/Ubuntu |
| Ease of Use | Difficult (requires extra flags) | Very Easy (interactive wizard) |
| Creates Home Folder? | No (unless forced with -m) | Yes (automatically) |
| Sets a Password? | No (requires passwd command) | Yes (prompts you immediately) |
| Best Used For | Automated scripts and apps | Human server administrators |
What if you use CentOS, Fedora, or Red Hat?
If you are using a Red Hat-based distribution (like CentOS, Fedora, or AlmaLinux), we have some bad news: the friendly adduser wizard does not exist by default. On these systems, typing adduser is actually just a secret shortcut that runs the standard useradd command. You will have to do things the manual way.
How to use useradd properly (if you have to)
If you are on a system that doesn’t have the interactive wizard, you can force useradd to do most of the work by using a few specific “flags” (extra instructions).
Instead of just typing sudo useradd john, use this command:
sudo useradd -m -s /bin/bash john- The -m tells the system to automatically make the /home/john folder.
- The -s /bin/bash assigns the standard Bash terminal to the user.
Don’t forget, you will still need to manually type sudo passwd john afterward to set their actual password!
Quick command examples (Debian/Ubuntu)
# Interactive (recommended)
sudo adduser <username>
# Non-interactive low-level tool
sudo useradd -m -s /bin/bash <username>
sudo passwd <username>Quick comparison (1-liners)
- useradd: creates the account only; you must supply options and set a password separately.
- adduser: interactive wizard; it sets up the account in a “ready to use” way and prompts for password.
The Final Verdict: Which Should You Use?
For 99% of your daily tasks on a Debian or Ubuntu system, you should always use adduser.
It is safer, faster, and prevents you from making silly mistakes, like forgetting to create a home folder or accidentally leaving an account without a password.
Save useradd for the day you start writing advanced automation scripts. Until then, let the adduser wizard do the heavy lifting for you!
