end of day 5 week 1
This commit is contained in:
179
week 1/projects/readme.md
Normal file
179
week 1/projects/readme.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# 🛠 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.*
|
||||
Reference in New Issue
Block a user