User Manager
Comprehensive user account and access control management tool for Linux systems with role-based permissions.
User Manager
A comprehensive tool for managing user accounts, roles, and access control in Linux systems.
Features
User Account Management
- Create new user accounts with specified roles
- Remove user accounts with optional home directory cleanup
- Modify existing user accounts
- List users with optional role filtering
- Backup and restore user data
Role-Based Access Control
- Create and manage role groups
- Assign users to multiple roles
- Automatic sudo access for admin role
- SSH access configuration
- Custom home directory support
Security Features
- Secure SSH directory setup
- Proper file permissions
- Sudo access management
- Group membership management
- Backup and restore capabilities
Installation
Prerequisites
- Bash shell
- Root or sudo privileges
- yq (for YAML processing, optional)
Installation Steps
Download the script from the Lambda Softworks Customer Portal:
- Log in to your Lambda Softworks Customer Portal account
- Navigate to the Files section
- Download the user-manager.sh script
Make the script executable:
chmod +x user-manager.sh
- Install dependencies:
For Debian/Ubuntu:
sudo apt-get update sudo apt-get install -y yq
For RHEL/CentOS:
sudo yum install -y yq
- Create configuration file (optional):
sudo mkdir -p /etc/lambdasoftworks sudo cat > /etc/lambdasoftworks/user-manager.yml << EOF default_shell: /bin/bash default_home: /home backup_retention_days: 30 roles: admin: sudo_access: true groups: - sudo - admin user: sudo_access: false groups: - users EOF
Usage
Basic Commands
- Create new user:
sudo ./user-manager.sh --create john admin
- List users:
sudo ./user-manager.sh --list
- List users by role:
sudo ./user-manager.sh --list admin
Advanced Commands
- Create user with custom shell and home:
sudo ./user-manager.sh --create jane user /bin/bash /home/jane
- Modify user role:
sudo ./user-manager.sh --modify john admin
- Remove user:
sudo ./user-manager.sh --remove john
- Backup user data:
sudo ./user-manager.sh --backup john
- Restore user data:
sudo ./user-manager.sh --restore john /var/backups/lambdasoftworks/users/john_20240101.tar.gz
Command Line Options
--create USERNAME ROLE [SHELL] [HOME_DIR]
: Create new user account--remove USERNAME [REMOVE_HOME]
: Remove user account--modify USERNAME [NEW_ROLE] [NEW_SHELL] [NEW_HOME]
: Modify user account--list [ROLE]
: List users (optionally by role)--backup USERNAME
: Backup user data--restore USERNAME BACKUP_FILE
: Restore user data--config FILE
: Use custom configuration file--help
: Show help message
Configuration
Configuration File Location
- Default:
/etc/lambdasoftworks/user-manager.yml
- Custom: Specified via
--config
option
Configuration Options
# Default settings default_shell: /bin/bash default_home: /home # Backup settings backup_retention_days: 30 # Role definitions roles: admin: sudo_access: true groups: - sudo - admin user: sudo_access: false groups: - users developer: sudo_access: true groups: - sudo - docker - git
Logs and Data Storage
Log File Location
/var/log/lambdasoftworks/user-manager.log
Backup Location
/var/backups/lambdasoftworks/users/
- Format: Compressed tar archives
- Naming:
username_YYYYMMDD_HHMMSS.tar.gz
- Retention: Configurable (default: 30 days)
Examples
User Management
# Create admin user sudo ./user-manager.sh --create john admin # Create regular user sudo ./user-manager.sh --create jane user # Create developer user with custom home sudo ./user-manager.sh --create bob developer /bin/bash /home/developers/bob # List all users sudo ./user-manager.sh --list # List admin users sudo ./user-manager.sh --list admin # Modify user role sudo ./user-manager.sh --modify jane admin # Remove user sudo ./user-manager.sh --remove john
Backup and Restore
# Backup user data sudo ./user-manager.sh --backup john # Restore user data sudo ./user-manager.sh --restore john /var/backups/lambdasoftworks/users/john_20240101.tar.gz
Troubleshooting
Common Issues
- Permission Issues
# Fix log directory permissions sudo mkdir -p /var/log/lambdasoftworks sudo chown -R root:root /var/log/lambdasoftworks sudo chmod 755 /var/log/lambdasoftworks # Fix configuration directory permissions sudo mkdir -p /etc/lambdasoftworks sudo chown -R root:root /etc/lambdasoftworks sudo chmod 755 /etc/lambdasoftworks # Fix backup directory permissions sudo mkdir -p /var/backups/lambdasoftworks sudo chown -R root:root /var/backups/lambdasoftworks sudo chmod 755 /var/backups/lambdasoftworks
- User Creation Issues
# Check if user exists id username # Check user groups groups username # Check sudo access sudo -l -U username # Check home directory ls -la /home/username
- Backup Issues
# Check backup directory ls -l /var/backups/lambdasoftworks/users/ # Check backup file integrity tar -tvf /var/backups/lambdasoftworks/users/username_*.tar.gz # Check disk space df -h /var/backups
Debug Mode
To enable debug logging:
sudo DEBUG=1 ./user-manager.sh [OPTIONS]