useradd Cheatsheet
Basic Syntax
Core useradd command forms.
| Command | Description |
|---|---|
sudo useradd username |
Create a user account with defaults |
sudo useradd -m username |
Create user and home directory |
sudo useradd -m -s /bin/bash username |
Create user with explicit login shell |
sudo useradd -m -c "Full Name" username |
Create user with GECOS/comment field |
sudo useradd -D |
Show current default useradd settings |
Home Directory and Shell
Set home path and login shell at creation time.
| Command | Description |
|---|---|
sudo useradd -m username |
Create /home/username if missing |
sudo useradd -M username |
Create user without home directory |
sudo useradd -d /srv/appuser -m appuser |
Create user with custom home path |
sudo useradd -s /bin/zsh username |
Set login shell to Zsh |
sudo useradd -s /usr/sbin/nologin serviceuser |
Disable interactive login for service account |
Groups and Permissions
Assign primary and supplementary groups during creation.
| Command | Description |
|---|---|
sudo useradd -m -g developers username |
Set primary group to developers |
sudo useradd -m -G sudo username |
Add user to supplementary sudo group |
sudo useradd -m -G docker,developers username |
Add user to multiple supplementary groups |
id username |
Verify UID, GID, and group membership |
groups username |
Show group memberships for a user |
UID, Expiry, and Inactive Policy
Control account identity and lifetime.
| Command | Description |
|---|---|
sudo useradd -m -u 1050 username |
Create user with specific UID |
sudo useradd -m -e 2026-12-31 username |
Set account expiration date |
sudo useradd -m -f 30 username |
Disable account after 30 inactive days |
sudo useradd -m -k /etc/skel username |
Use skeleton directory for initial files |
sudo chage -l username |
Inspect account aging and expiry policy |
Password and Account Activation
Set password and verify account usability.
| Command | Description |
|---|---|
sudo passwd username |
Set or reset user password |
sudo passwd -l username |
Lock account password login |
sudo passwd -u username |
Unlock account password login |
sudo su - username |
Test login environment for new user |
getent passwd username |
Confirm user entry in account database |
Defaults and Safe Workflow
Check defaults first and validate each account creation.
| Command | Description |
|---|---|
sudo useradd -D |
Show defaults (HOME, SHELL, SKEL, etc.) |
sudo useradd -D -s /bin/bash |
Change default shell for future users |
sudo useradd -m newuser && sudo passwd newuser |
Common two-step creation flow |
sudo usermod -aG sudo newuser |
Grant admin privileges after creation |
sudo userdel -r username |
Remove user and home directory when deprovisioning |
Troubleshooting
Quick checks for common useradd errors.
| Issue | Check |
|---|---|
useradd: user 'name' already exists |
Confirm with id name or choose a different username |
group 'name' does not exist |
Create group first with groupadd or use an existing group |
| Home directory not created | Use -m and verify defaults with useradd -D |
| Cannot log in after creation | Check shell (getent passwd user) and set password with passwd |
| UID conflict | Verify used UIDs in /etc/passwd before assigning -u manually |
Related Guides
Use these guides for full account lifecycle tasks.
| Guide | Description |
|---|---|
| How to Create Users in Linux Using the useradd Command | Full useradd tutorial with examples |
| usermod Command in Linux | Modify existing user accounts |
| How to Delete Users in Linux Using userdel | Remove users safely |
| How to Add User to Group in Linux | Manage supplementary groups |
| How to Change User Password in Linux | Set and rotate account passwords |
