Master Linux User & Group Management: UID, GID, Commands Explained
This comprehensive guide walks you through Linux user and group concepts, UID/GID identifiers, essential commands like useradd, groupadd, id, passwd, and su/sudo, plus configuration files and security practices for effective system administration.
Linux User Management
1. User/Group Overview
Linux is a multi‑user, multitasking OS where each process belongs to a specific user. To use system resources you must have a regular user account created by the superuser. Superusers can monitor users and set permissions to ensure security.
Each user belongs to one or more groups, allowing centralized management of permissions.
3.1.1 User identifiers: UID and GID
Each user has a unique UID, similar to an ID card number.
The
idcommand shows the current user’s UID, GID and group list.
# id
uid=0(root) gid=0(root) groups=0(root) ...The
llcommand lists file owners.
# ll /home
... (listing) ...Use
ps aux | lessto view processes.
# ps aux | less
USER PID %CPU %MEM ... COMMAND
root 1 0.0 0.1 ... /usr/lib/systemd/systemd
...After installing Apache,
ps auxshows the httpd process owner.
# yum -y install httpd
# systemctl start httpd
# ps aux | grep httpd
root 43382 0.0 ... grep --color=auto httpd3.1.2 User and group files
User names and encrypted passwords are stored in
/etc/passwdand
/etc/shadow. Each line in
/etc/passwdhas seven fields: username, password placeholder, UID, primary GID, comment, home directory, login shell.
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...The
/etc/shadowfile contains nine fields, including the encrypted password, last change date, minimum and maximum age, etc.
# cat /etc/shadow
root:$6$...$...:19655:0:99999:7:::
...UID 0 is privileged, 1‑499 are system users, 500+ are regular users (CentOS 6+).
3.1.3 Types of users
1. Superuser (root) – has UID 0 and can execute any command.
2. Regular user – UID usually starts at 1000; can run limited commands.
3. Service (program) user – non‑login accounts used by daemons, UID 1‑999.
3.2 Managing users and groups
3.2.1 Creating users and groups
Use
useraddto create a user.
# useradd qf1
# grep qf1 /etc/passwd /etc/group
/etc/passwd:qf1:x:1015:1015:/home/qf1:/bin/bash
/etc/group:qf1:x:1015:Common
useraddoptions:
-d Specify home directory
-u Specify UID
-g Specify primary GID
-G Specify supplementary groups
-s Specify login shell
Use
groupaddto create a group and
useradd -Gto add a user to existing groups.
# groupadd hh
# groupadd hhh
# useradd qf2 -G hh
# useradd qf3 -G hh,hhh
# id qf2
uid=1016(qf2) gid=1016(qf2) groups=1016(qf2),2006(hh)
# id qf3
uid=1017(qf3) gid=1017(qf3) groups=1017(qf3),2006(hh),2007(hhh)Specify a GID with
groupadd -g.
# groupadd hhhh -g 1802
# grep hhhh /etc/group
hhhh:x:1802:3.2.2 Deleting users and groups
Remove a user with
userdel. Use
-rto also delete the home directory and mail spool.
# userdel qf4
# userdel -r qf3Remove a group with
groupdel(cannot delete a group that is still the primary group of a user).
# groupdel hhhh3.2.3 Changing user passwords
Any user can change their own password with
passwd. Only root can change another user’s password without the old password.
# passwd qf13.2.4 Secure users
Set a user’s login shell to
/sbin/nologinto create a non‑login (secure) account.
# useradd qf8 -s /sbin/nologin
# tail -2 /etc/passwd
qf2:x:1016:1016:/home/qf2:/bin/bash
qf8:x:1017:1017:/home/qf8:/sbin/nologin3.2.5 Configuration files
/etc/login.defsand
/etc/default/useradddefine defaults for
useradd, such as password aging and default shell.
# /etc/login.defs excerpt
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
ENCRYPT_METHOD SHA512 # /etc/default/useradd excerpt
GROUP=100
HOME=/home
SHELL=/bin/bash
CREATE_MAIL_SPOOL=yes3.2.6 su and sudo
Use
suto switch users;
sudoallows users in the
wheelgroup to execute commands as root after entering their password.
# su -
Password:
# su none
# useradd qf9 -G wheel
# sudo useradd qf103.3 Chapter summary
This chapter covered the meaning of UID/GID, the role of a user’s shell, and how to add, delete, modify, and query users and groups; how to edit
/etc/passwdand
/etc/shadow; default configurations for
useradd; and how to switch identities with
suand elevate privileges with
sudo.
Raymond Ops
Linux ops automation, cloud-native, Kubernetes, SRE, DevOps, Python, Golang and related tech discussions.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.