180 lines
3.8 KiB
Markdown
180 lines
3.8 KiB
Markdown
# 🛠 Bonus Sysadmin Projects — Bash & PowerShell Fundamentals
|
||
|
||
This README documents a set of **bonus sysadmin-oriented projects** designed to be completed **after Week 1 and before Week 2**.
|
||
|
||
These projects are practical, security-focused, and closely aligned with **real Linux/Windows system administration, automation, and security analysis tasks**. They reinforce core programming concepts (loops, conditionals, validation, algorithms) in both **Bash (Linux)** and **PowerShell (Windows)** environments.
|
||
|
||
---
|
||
|
||
## 🎯 Purpose of These Projects
|
||
|
||
These bonus projects exist to:
|
||
|
||
* Bridge theory → real-world sysadmin work
|
||
* Strengthen Bash and PowerShell scripting confidence
|
||
* Apply algorithmic thinking to system tasks
|
||
* Build habits required for **A+ → CCNA → Security+** paths
|
||
* Prepare for Week 2 (Data Structures & Algorithms)
|
||
|
||
They simulate tasks performed by:
|
||
|
||
* Linux and Windows system administrators
|
||
* Security analysts / SOC engineers
|
||
* DevOps and cloud engineers
|
||
* Blue team / hardening roles
|
||
|
||
---
|
||
|
||
## 🧰 Project 1 — User Audit Script
|
||
|
||
### Goal
|
||
|
||
Audit local users and identify potentially unsafe usernames.
|
||
|
||
### Tasks
|
||
|
||
* Read usernames from `/etc/passwd` (Linux) or `Get-LocalUser` (PowerShell)
|
||
* Extract the username field
|
||
* Validate usernames using rules:
|
||
|
||
* Letters only
|
||
* Length ≤ 20
|
||
* Starts with a letter
|
||
* Print only invalid usernames
|
||
|
||
### Skills Reinforced
|
||
|
||
* File reading / system commands
|
||
* Field parsing
|
||
* Loops and validation logic
|
||
* Defensive system auditing
|
||
|
||
---
|
||
|
||
## 🔐 Project 2 — Password Policy Checker (Simulation)
|
||
|
||
> ⚠️ No real passwords — this is a simulation exercise
|
||
|
||
### Goal
|
||
|
||
Validate whether a password string meets a security policy.
|
||
|
||
### Tasks
|
||
|
||
* Prompt user for a password
|
||
* Enforce rules such as:
|
||
|
||
* Minimum length (e.g., ≥ 12)
|
||
* At least one letter
|
||
* At least one digit
|
||
* At least one special character
|
||
* Output `Strong` or `Weak`
|
||
|
||
### Skills Reinforced
|
||
|
||
* Multiple counters / flags
|
||
* Regex checks
|
||
* Early exit logic
|
||
* Secure input validation
|
||
|
||
---
|
||
|
||
## 📄 Project 3 — Log File Scanner
|
||
|
||
### Goal
|
||
|
||
Scan a log file for suspicious activity indicators.
|
||
|
||
### Tasks
|
||
|
||
* Read a log file line by line
|
||
* Detect keywords such as:
|
||
|
||
* `failed`
|
||
* `error`
|
||
* `unauthorized`
|
||
* Count occurrences of each keyword
|
||
* Print a summary report
|
||
|
||
### Skills Reinforced
|
||
|
||
* File iteration
|
||
* Pattern matching
|
||
* Counters
|
||
* Incident response fundamentals
|
||
|
||
---
|
||
|
||
## 🖥 Project 4 — Service Status Monitor
|
||
|
||
### Goal
|
||
|
||
Verify whether critical system services are running.
|
||
|
||
### Tasks
|
||
|
||
* Define an array/list of services (e.g., `ssh`, `cron`, `ufw` in Linux; `WinRM`, `wuauserv` in Windows)
|
||
* For each service:
|
||
|
||
* Check if it is running
|
||
* Print `OK` or `NOT RUNNING`
|
||
|
||
### Skills Reinforced
|
||
|
||
* Arrays / collections
|
||
* Command execution and exit code checking
|
||
* Automation patterns in Bash and PowerShell
|
||
|
||
---
|
||
|
||
## 📊 Project 5 — Algorithm Reflection (Written)
|
||
|
||
### Goal
|
||
|
||
Build the habit of analyzing performance in real scripts.
|
||
|
||
### Tasks
|
||
|
||
For **one of the projects above**, answer:
|
||
|
||
* What is `n` in this script?
|
||
* What is the time complexity?
|
||
* What happens if the input doubles?
|
||
|
||
### Example
|
||
|
||
```
|
||
T(n) = n
|
||
T(2n) = 2n
|
||
Big-O: O(n)
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Completion Guidelines
|
||
|
||
* These projects are **optional but strongly recommended**
|
||
* Completing **2–3 projects** is sufficient before Week 2
|
||
* Focus on:
|
||
|
||
* Correctness
|
||
* Readability
|
||
* Defensive coding
|
||
* Clear logic
|
||
* Implement each project in **both Bash and PowerShell** if possible for dual practice
|
||
|
||
---
|
||
|
||
## 🔜 What Comes Next
|
||
|
||
After completing the bonus projects:
|
||
|
||
* Proceed to **Week 2 — Data Structures & Early Algorithms**
|
||
* Arrays, maps, sets
|
||
* Searching algorithms
|
||
* Clear math explanations with real system examples
|
||
|
||
---
|
||
|
||
📌 *These bonus sysadmin projects are designed to turn programming fundamentals into practical Linux and Windows administration and security skills.*
|