235 words
1 minutes
User Management
2025-04-03

User management in Linux involves controlling system access, permissions, and resource allocation. System administrators create and manage user accounts, assign group memberships, and configure appropriate file permissions.

User Accounts and Groups#

Basic Concepts#

  • User Accounts: Individual identities with unique login credentials
  • Groups: Collections of users sharing common access privileges
  • Root User: Superuser with full system access (UID 0)

User Management Commands#

Account Operations#

CommandDescriptionExample
useraddCreates new usersudo useradd alex
usermodModifies user propertiessudo usermod -aG developers alex
userdelDeletes user accountsudo userdel alex
passwdChanges passwordpasswd (current user) or sudo passwd alex

Group Management#

CommandDescriptionExample
addgroupCreates new groupsudo addgroup developers
delgroupRemoves groupsudo delgroup developers
groupsShows user’s groupsgroups alex

Privilege Management#

Elevated Access#

CommandDescriptionUsage
sudoExecute command as rootsudo cat /etc/shadow
suSwitch user identitysu - root

Sudo Configuration#

  • Managed via /etc/sudoers
  • Edited safely with visudo command
  • Example entry: alex ALL=(ALL) NOPASSWD: /usr/bin/apt

File Permissions and Security#

Important System Files#

FilePurposePermissions
/etc/passwdUser account info644 (rw-r—r—)
/etc/shadowEncrypted passwords640 (rw-r-----)
/etc/groupGroup definitions644 (rw-r—r—)

Permission Management#

  • chmod: Change file permissions
  • chown: Change file ownership
  • chgrp: Change file group

Best Practices#

  1. Principle of Least Privilege: Grant only necessary access
  2. Regular Audits: Review user accounts and permissions periodically
  3. Password Policies: Enforce strong passwords and regular changes
  4. Sudo Restrictions: Limit root access through sudo
  5. Group Organization: Use groups for shared resource access

Example Workflow#

  1. Creating a new developer:
sudo useradd -m -s /bin/bash dev_user
sudo passwd dev_user
sudo addgroup developers
sudo usermod -aG developers dev_user
  1. Granting controlled sudo access:
sudo visudo
# Add line: dev_user ALL=(ALL) NOPASSWD: /usr/bin/git
  1. Setting up project directory:
sudo mkdir /var/project
sudo chown root:developers /var/project
sudo chmod 775 /var/project

Security Considerations#

  • Always use visudo for editing sudoers file
  • Regularly review /etc/passwd for unexpected accounts
  • Monitor /var/log/auth.log for suspicious access attempts
  • Disable root login via SSH in /etc/ssh/sshd_config
User Management
https://fuwari.vercel.app/posts/user-management/
Author
Ranjung Yeshi Norbu
Published at
2025-04-03