User Management

User Management

These commands are used to manage users, groups, and permissions on a Linux system.

sudo

Executes a command as another user, typically the superuser.

sudo [options] command

Options:

Examples:

# Execute a command as root
sudo apt update

# Execute a command as another user
sudo -u postgres psql

# Run a shell as root
sudo -i

# List sudo privileges
sudo -l

su

Switch user or become another user.

su [options] [username]

Options:

Examples:

# Switch to root user
su

# Switch to root with environment
su -

# Switch to another user
su username

# Execute a command as another user
su -c "ls -la /home" username

useradd

Creates a new user.

useradd [options] username

Options:

Examples:

# Create a new user with default settings
sudo useradd username

# Create a user with home directory and bash shell
sudo useradd -m -s /bin/bash username

# Create a user with specific groups
sudo useradd -m -G sudo,docker username

adduser

A more user-friendly frontend to useradd (on Debian-based systems).

adduser [options] username

Options:

Examples:

# Create a new user interactively
sudo adduser username

# Create a system user
sudo adduser --system username

usermod

Modifies user account settings.

usermod [options] username

Options:

Examples:

# Add user to the sudo group
sudo usermod -a -G sudo username

# Change user's shell
sudo usermod -s /bin/zsh username

# Lock a user account
sudo usermod -L username

# Change home directory and move contents
sudo usermod -d /newhome/username -m username

userdel

Deletes a user account.

userdel [options] username

Options:

Examples:

# Delete a user
sudo userdel username

# Delete a user and their home directory
sudo userdel -r username

passwd

Changes user password.

passwd [options] [username]

Options:

Examples:

# Change your own password
passwd

# Change another user's password (as root)
sudo passwd username

# Lock a user account
sudo passwd -l username

# Force user to change password at next login
sudo passwd -e username

# Check password status
sudo passwd -S username

groupadd

Creates a new group.

groupadd [options] groupname

Options:

Examples:

# Create a new group
sudo groupadd developers

# Create a new group with specific GID
sudo groupadd -g 1010 developers

groupmod

Modifies a group.

groupmod [options] groupname

Options:

Examples:

# Rename a group
sudo groupmod -n devs developers

# Change a group's GID
sudo groupmod -g 1020 developers

groupdel

Deletes a group.

groupdel [options] groupname

Examples:

# Delete a group
sudo groupdel developers

groups

Shows group membership for a user.

groups [username]

Examples:

# Show your group memberships
groups

# Show another user's group memberships
groups username

id

Displays user and group IDs.

id [options] [username]

Options:

Examples:

# Show your user and group information
id

# Show information for another user
id username

# Show only username
id -un username

# Show all groups (names) for a user
id -nG username

chage

Changes user password expiry information.

chage [options] username

Options:

Examples:

# List password aging information
sudo chage -l username

# Set password to expire in 90 days
sudo chage -M 90 username

# Set account expiration date
sudo chage -E 2025-12-31 username

# Force password change at next login
sudo chage -d 0 username

getent

Gets entries from administrative databases.

getent database [key]

Databases:

Examples:

# Get all users
getent passwd

# Get information about a specific user
getent passwd username

# Get all groups
getent group

# Get information about a specific group
getent group groupname

# Lookup hostname
getent hosts example.com

who

Shows who is logged on.

who [options]

Options:

Examples:

# Show logged-in users
who

# Show all information
who -a

# Show with headers
who -H

w

Shows who is logged on and what they are doing.

w [options] [user]

Options:

Examples:

# Show logged-in users and their activity
w

# Show information for a specific user
w username

last

Shows listing of last logged-in users.

last [options] [username] [tty]

Options:

Examples:

# Show recent logins
last

# Show last 10 logins
last -n 10

# Show logins for a specific user
last username

lastlog

Reports the most recent login of all users.

lastlog [options]

Options:

Examples:

# Show login information for all users
lastlog

# Show information for a specific user
lastlog -u username

# Show users who logged in in the last 7 days
lastlog -t 7

chmod/chown/chgrp

These commands change file permissions, ownership, and group.

See File Management for details on these commands.