diff --git a/src/solutions/user-management.md b/src/solutions/user-management.md index 4fcbcc2..831265a 100644 --- a/src/solutions/user-management.md +++ b/src/solutions/user-management.md @@ -43,4 +43,72 @@ From Practice Scenarios v3: Create a user named 'john' with a custom shell and h - Security Best Practices - System Verification -[Additional scenarios will be documented here as they are completed] \ No newline at end of file +*** +*** + +# Scenario: Creating Users with Specific Requirements + +## Original Problem +- Create a new user called 'analyst1' with home directory '/home/analyst1' +- Create a group called 'datateam' +- Add 'analyst1' to 'datateam' +- Create a directory '/data/reports' owned by 'datateam' with SGID set +- Ensure members of 'datateam' can read/write, others can only read +- Set password expiry for 'analyst1' to 90 days + +## Environment +- OS Version: RHEL 9.5 +- Initial State: No user 'analyst1' exists +- Required Outcome: User 'analyst1' created with specific requirements + +## Solution Steps +1. Step 1 - Create the user 'analyst1' + ```bash + sudo useradd -m -d /home/analyst1 analyst1 + ``` + This creates the user 'analyst1' with a home directory '/home/analyst1' + +2. Step 2 + ```bash + sudo groupadd datateam + ``` + This creates the group 'datateam' + +3. Step 3 - Add 'analyst1' to 'datateam' + ```bash + sudo usermod -aG datateam analyst1 + ``` + This adds 'analyst1' to the 'datateam' group + +4. Step 4 - Create the directory '/data/reports' owned by 'datateam' with SGID set + ```bash + sudo mkdir -p /data/reports + sudo chown :datateam /data/reports + sudo chmod 2775 /data/reports + ``` + This creates the directory '/data/reports' owned by 'datateam' with SGID set + +5. Step 5 - Ensure members of 'datateam' can read/write, others can only read + ```bash + sudo chmod 2775 /data/reports + ``` + This ensures members of 'datateam' can read/write, others can only read + +6. Step 6 - Set password expiry for 'analyst1' to 90 days + ```bash + sudo chage -E $(date -d '90 days' +%Y-%m-%d) analyst1 + ``` + This sets the password expiry for 'analyst1' to 90 days + +## Verification +Commands used to verify the solution works correctly + +## Key Learnings +- Understanding of useradd, groupadd, usermod, mkdir, chown, chmod, chage commands +- Importance of verifying user creation +- Importance of setting password expiry + +## Additional Notes +> [!NOTE] +> This scenario is a good example of how to create a user with a specific home directory, add them to a group, create a directory owned by the group with SGID set, and set password expiry. +