This runbook provides procedures for managing user accounts, groups, permissions, access control, and user-related incidents on Ubuntu Linux servers.
Applies to:
- Ubuntu Server 20.04 LTS
- Ubuntu Server 22.04 LTS
- Ubuntu Server 24.04 LTS
Responsibilities Covered:
- User Provisioning
- User Deprovisioning
- Group Administration
- Privilege Management
- Password Management
- Account Auditing
- Incident Response
Display all local users:
cat /etc/passwd
Display only usernames:
cut -d: -f1 /etc/passwd
List users with login shells:
grep "/bin/bash" /etc/passwd
who
Alternative:
w
id username
Example:
id vagrant
Expected Output:
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
<figure>
<img src="../screenshots/verify-existing-users.png" alt="verify existing users">
<figcaption>Figure 1: Verify existing users.</figcaption>
</figure>
sudo adduser username
Example:
sudo adduser serveradmin
The system will:
- Create user account
- Create home directory
- Create user group
- Prompt for password
id username
ls -ld /home/username
sudo chage -d 0 username
Verify:
sudo chage -l username
cat /etc/group
sudo groupadd developers
Verify:
getent group developers
sudo usermod -aG developers username
Example:
sudo usermod -aG developers serveradmin
Verify:
groups serveradmin
sudo gpasswd -d username developers
Verify:
groups username
Add user to sudo group:
sudo usermod -aG sudo username
Verify:
groups username
Expected:
*username : username sudo group*
Switch user:
su - username
Run:
sudo whoami
Expected:
*root*
sudo deluser username sudo
Verify:
groups username
sudo passwd username
sudo passwd -e username
sudo passwd -l username
Verify:
sudo passwd -S serveradmin
Expected:
serveradmin L 06/08/2026 0 99999 7 -1
sudo passwd -u username
Verify:
sudo passwd -S username
Expected:
serveradmin P 06/08/2026 0 99999 7 -1
sudo chage -E 2026-12-31 username
Verify:
sudo chage -l username
sudo chage -E -1 username
mkdir -p ~/.ssh
chmod 700 ~/.ssh
First confirm if local key exists (.pub file)
ls -la ~/.ssh
Generate key:
ssh-keygen -t ed25519
Manually copy key from local machine to server:
cat <directory>/.ssh/id_ed25519.pub
Copy public key from local machine and manually paste inside ~/.ssh/authorized_keys:
vim ~/.ssh/authorized_keys
Set permissions:
chmod 600 ~/.ssh/authorized_keysls -la ~/.sshCorrect ownership:
sudo chown -R username:username ~/.sshLock account:
sudo passwd -l usernameExpire account:
sudo chage -E 0 usernamesudo tar -czvf \
username-home-backup.tar.gz \
/home/usernameKeep home directory:
sudo userdel usernameRemove home directory:
sudo userdel -r usernameid usernameExpected:
no such user
awk -F: '$3 >= 1000 {print $1}' /etc/passwdgetent group sudosudo passwd -SalastlogSpecific user:
lastlog -u usernamelastLogin incorrect
id username
sudo passwd -S username
sudo chage -l usernameUnlock account:
sudo passwd -u usernameReset password:
sudo passwd usernameusername is not in the sudoers file
groups usernamesudo usermod -aG sudo usernameUser must log out and back in.
ls -ld /home/usernamesudo chown -R username:username /home/usernamesudo chmod 750 /home/usernamels -la ~/.sshcat ~/.ssh/authorized_keyschmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysVerify ownership:
sudo chown -R username:username ~/.sshVerify:
- User account exists
- User belongs to correct groups
- Password policy enforced
- SSH access validated
- Sudo permissions tested
- Home directory ownership correct
- Login successful
- Audit logs reviewed
Validation Commands:
id username
groups username
sudo passwd -S username
sudo chage -l username
lastlog -u usernameEscalate if:
- Unauthorized account creation detected
- Privilege escalation suspected
- Multiple failed login attempts observed
- Sudoers file corruption identified
- Authentication services unavailable
- Large-scale user access outage occurs
Ubuntu User Management
man useradd
man adduser
man usermod
man passwd
man groupadd
man chageAuthentication Logs
man last
man lastlog


