User & Group Management

πŸš€ Linux User Management (Advanced & Real-World Scenarios)

This guide covers: βœ… User creation, management & permissions βœ… SSH access control βœ… File permissions & access restrictions βœ… Monitoring user activity βœ… Flags & options for commands

πŸ”Ή Real-World Enterprise Scenario

Imagine a company where multiple teams (Admins, Developers, Read-Only Users) access a single Linux server.

Role

Access Level

Admin

Full root access (sudo), can manage users

Developer

Can modify project files but not system settings

Read-Only

Can view logs but cannot modify files


πŸ”Ή Step 1: Creating Users & Assigning Groups

1.1 Adding Users with Flags

πŸ”Ή Create an Admin user (john) with a home directory:

sudo useradd -m -s /bin/bash john

πŸ› οΈ Breakdown of Flags:

  • -m β†’ Creates a home directory (/home/john)

  • -s /bin/bash β†’ Sets Bash shell for the user

βœ… Common Issue: User can't login Solution: Set a password

πŸ”Ή Create a Developer (alice):

πŸ”Ή Create a Read-Only User (bob):


1.2 Creating & Managing Groups

πŸ”Ή Create role-based access groups:

πŸ”Ή Add users to their respective groups:

πŸ”Ή Check a user's groups:

βœ… Common Issue: User permissions not working πŸ”Ή Reapply group permissions & restart session:


πŸ”Ή Step 2: Managing SSH Access

2.1 Restricting SSH Access by User Role

πŸ”Ή Allow only admins to SSH into the server: Edit SSH config:

Add:

Restart SSH service:

βœ… Common Issue: SSH Access Denied πŸ”Ή Check SSH logs:


2.2 Setting Up SSH Key Authentication

πŸ”Ή Generate SSH key on local machine:

πŸ”Ή Copy public key to server (alice user):

βœ… Common Issue: SSH Permission Denied πŸ”Ή Ensure correct permissions:


πŸ”Ή Step 3: Managing File Permissions & Access Control

3.1 Setting Up Role-Based Access for Shared Directory

πŸ”Ή Create a project folder for Developers (/opt/project)

πŸ› οΈ Breakdown of Permissions:

  • 770 β†’ Developers can read/write, others no access

  • chown :developers β†’ Assigns group ownership

πŸ”Ή Grant Read-Only Users (bob) access to logs only:

βœ… Common Issue: Developers can't modify files πŸ”Ή Check file ownership:


πŸ”Ή Step 4: Monitoring & Restricting Users

4.1 Checking Active Users & Login History

πŸ”Ή See currently logged-in users:

πŸ”Ή Check login history:

βœ… Common Issue: Unauthorized login attempts πŸ”Ή Monitor failed login attempts:


4.2 Restricting User Access

πŸ”Ή Lock a user account (bob) temporarily:

πŸ”Ή Disable interactive login for a user:

πŸ”Ή Delete a user (bob) completely:

βœ… Common Issue: User Cannot Login After Reset πŸ”Ή Re-enable account and reset password:


πŸš€ Enterprise Setup Summary

βœ” Admins (john) β†’ Full sudo access βœ” Developers (alice) β†’ Modify project files βœ” Read-Only (bob) β†’ View logs but no changes βœ” SSH restricted to Admins only βœ” Shared directory with correct permissions βœ” Monitoring & restricting user access


Next: Do you want to automate user management using Ansible or Bash scripts? πŸš€

Last updated