This project contains a robust Bash script that automates the initial setup of a Linux desktop environment.
It handles system updates, package installation, user onboarding, and basic UFW firewall hardening. The goal of this project is to build a solid foundation in Linux administration and automation, while preparing for more advanced tools like Ansible and DevOps workflows.
| Feature | Key Function & Resilience Demonstrated |
|---|---|
| 1οΈβ£ System Preparation | Validates root access, updates & upgrades the system, and installs essential tools silently. |
| 2οΈβ£ Package Verification | Each installed application is checked using dpkg -s to ensure accurate reporting and prevent silent installation failures. |
| 3οΈβ£ User Onboarding | Creates a new user, sets password, adds user to the sudo group, and validates that privilege assignment succeeded using resilience checks. |
| 4οΈβ£ Security Baseline | Uses UFW to deny incoming traffic, allow outgoing, and allow SSH access, providing a minimal secure configuration. |
- Ubuntu or Debian system
- Internet access
- Run as root or with
sudo
chmod +x setup.sh
sudo ./setup.sh