DEV Community

Vivesh
Vivesh

Posted on

Linux Administration Tasks with Use Cases

Managing a Linux system effectively requires proficiency in a wide range of administrative tasks. Below is a guide to key tasks with examples and use cases to streamline operations and ensure security.


1. Custom Apache User Setup

Objective: Create a dedicated Apache user for running the web server securely.

Commands:

sudo useradd -r -d /var/www -s /sbin/nologin apache
sudo chown -R apache:apache /var/www
Enter fullscreen mode Exit fullscreen mode

Use Case: Secure a web server by running Apache as a non-privileged user.


2. Group Creation and User Assignment

Objective: Create a group for developers and assign users.

Commands:

sudo groupadd devteam
sudo usermod -aG devteam user1
Enter fullscreen mode Exit fullscreen mode

Use Case: Facilitate collaboration by giving group-level permissions to project files.


3. Linux User Setup with Non-Interactive Shell

Objective: Create a user with no interactive shell to limit login access.

Commands:

sudo useradd -s /sbin/nologin backupuser
Enter fullscreen mode Exit fullscreen mode

Use Case: Use for users who only require FTP or backup services.


4. Service User Creation without Home Directory

Objective: Add a service-specific user without a home directory.

Commands:

sudo useradd -M -r -s /bin/false serviceuser
Enter fullscreen mode Exit fullscreen mode

Use Case: Securely run background services or daemons.


5. Temporary User Setup with Expiry

Objective: Create a user account with an expiration date.

Commands:

sudo useradd -e 2024-12-31 tempuser
Enter fullscreen mode Exit fullscreen mode

Use Case: Allow temporary access for contractors or short-term projects.


6. Linux User Data Transfer

Objective: Transfer user data to another directory or server.

Commands:

sudo rsync -av /home/user1/ /backup/user1/
Enter fullscreen mode Exit fullscreen mode

Use Case: Backup or migrate user data during system upgrades.


7. Secure Root SSH Access

Objective: Restrict SSH access for root users.

Steps:

  1. Edit the SSH configuration file:
   sudo nano /etc/ssh/sshd_config
Enter fullscreen mode Exit fullscreen mode
  1. Disable root login:
   PermitRootLogin no
Enter fullscreen mode Exit fullscreen mode
  1. Restart SSH:
   sudo systemctl restart sshd
Enter fullscreen mode Exit fullscreen mode

Use Case: Prevent unauthorized root access to the server.


8. Data Backup for Developer

Objective: Schedule regular backups for developers.

Commands:

crontab -e
# Add the following line:
0 2 * * * tar -czf /backup/dev_backup_$(date +\%F).tar.gz /home/dev
Enter fullscreen mode Exit fullscreen mode

Use Case: Ensure developers' data is secure in case of accidental deletion.


9. Script Execution Permissions

Objective: Make a script executable.

Commands:

chmod +x script.sh
./script.sh
Enter fullscreen mode Exit fullscreen mode

Use Case: Run custom scripts for automation or system management.


10. File Permission Correction

Objective: Correct permissions for shared directories.

Commands:

sudo chmod -R 775 /shared_folder
sudo chown -R user:group /shared_folder
Enter fullscreen mode Exit fullscreen mode

Use Case: Prevent unauthorized access to sensitive shared files.


11. String Replacement

Objective: Replace strings in configuration files.

Commands:

sed -i 's/oldstring/newstring/g' config.txt
Enter fullscreen mode Exit fullscreen mode

Use Case: Update URLs, paths, or configurations programmatically.


12. Secure Data Transfer

Objective: Transfer data securely between servers.

Commands:

scp file.tar.gz user@remote:/path/to/destination
Enter fullscreen mode Exit fullscreen mode

Use Case: Migrate sensitive data between servers securely.


13. Restrict Cron Access

Objective: Restrict specific users from scheduling cron jobs.

Commands:

Add users to /etc/cron.deny:

echo "user1" | sudo tee -a /etc/cron.deny
Enter fullscreen mode Exit fullscreen mode

Use Case: Prevent misuse of system resources.


14. Default GUI Boot Configuration

Objective: Change default boot to GUI mode.

Commands:

sudo systemctl set-default graphical.target
sudo reboot
Enter fullscreen mode Exit fullscreen mode

Use Case: Enable a desktop environment for easier management.


15. Timezone Alignment

Objective: Set the correct timezone for the server.

Commands:

sudo timedatectl set-timezone Asia/Kolkata
Enter fullscreen mode Exit fullscreen mode

Use Case: Align logs and cron jobs with local time.


16. Firewall Configuration

Objective: Set up and enable a firewall.

Commands:

sudo ufw allow 22
sudo ufw enable
Enter fullscreen mode Exit fullscreen mode

Use Case: Secure the server by controlling network access.


17. Process Limit Adjustment

Objective: Modify user process limits.

Steps:

  1. Edit limits file:
   sudo nano /etc/security/limits.conf
Enter fullscreen mode Exit fullscreen mode
  1. Add or modify:
   user1 soft nproc 1024
Enter fullscreen mode Exit fullscreen mode

Use Case: Prevent resource exhaustion due to excessive processes.


18. SELinux Installation and Configuration

Objective: Enable SELinux for enhanced security.

Commands:

sudo apt install selinux
sudo setenforce 1
sudo sestatus
Enter fullscreen mode Exit fullscreen mode

Use Case: Enforce mandatory access controls on critical systems.


_By implementing these tasks, as a Linux administrators you can efficiently manage systems, ensure security, and optimize performance for varied use cases.

Happy Learning !!! _

Top comments (0)