useradd Cheatsheet
Quick reference for creating Linux users with useradd, including home directories, shells, groups, and account policies
The useradd command creates new user accounts in Linux. This cheatsheet covers common account creation patterns, default settings, group assignment, and safe admin workflows.
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 |