Days 3-7: Linux System Administration, Service Management, and Deploying NGINX | #100DaysOfDevOps
Mastering user management, exploring system services, and seeing that glorious NGINX welcome screen on AWS.

Welcome to the end of my first week on the #100DaysOfDevOps journey! Days 3 through 7 were heavily focused on solidifying core Linux administrative skills. While I spent some time revising our previous deep dive into SSH protocols and Bastion Hosts, the bulk of this week was about understanding how Linux environments actually run, how users are managed, and bringing my first web server to life in the cloud.
Here is a breakdown of what I built, learned, and configured over the last few days.
π¦ Package Managers: The Engines of Installation
Different Linux distributions handle software installation differently. I mapped out the primary package managers:
Ubuntu/Debian:
aptandsnapRedHat:
rpmanddnfCentOS:
yum
One crucial distinction I learned for Ubuntu environments is the difference between updating and upgrading:
update: Checks the repositories for what new software versions are available.upgrade: Actually installs those new versions.
ποΈ Navigating the Filesystem
Precision is key when moving through a Linux filesystem. A single slash changes everything:
cd /: Takes you to the absolute root directory of the entire filesystem.cd /root: Takes you to the root user's specific home directory.cd root: Attempts to move into a directory named "root" inside your current location (throws an error if it doesn't exist).
π₯ Identity and Access: User & Group Management
Managing who has access to what is the bedrock of secure infrastructure. I spent significant time mastering user and group commands:
Creating Users: Explored the difference between a simple
sudo useradd -m <username>and a more explicit command likesudo useradd -m -s /usr/bin/bash -p <password>, which defines the default shell and password right out of the gate.Group Dynamics: Used
sudo groupaddto create groups andcat /etc/groupto verify them.Modifying Permissions: The
usermodcommand is incredibly powerful. For instance, runningsudo usermod -aG docker ubuntuadds the 'ubuntu' user to the 'docker' group, allowing Docker commands to be run withoutsudoβa critical step for containerized workflows!
βοΈ Controlling the System: Services and Logs
When things go wrong (or right), you need to know how to control the services and read the logs.
Service Control: Used
systemctl start,systemctl stop, andsystemctl statusto manage background services daemon.Log Reading: Discovered
journalctl. Running a command likejournalctl -u nginxallows you to isolate and read the specific logs for the NGINX unit, which is invaluable for troubleshooting.The Manual: When in doubt, the
mancommand (e.g.,man useradd) is the ultimate source of truth.
π Hands-On: The NGINX Milestone
The highlight of the week was deploying an NGINX web server on an AWS EC2 instance.
Installed the NGINX package.
Navigated to the AWS Security Group attached to my EC2 instance.
Edited the inbound rules to allow traffic on Port 80 (HTTP).
Entered the public IP into my browser and was greeted by the "Welcome to nginx!" screen.
There is nothing quite like configuring the backend and immediately seeing the frontend result. Week 1 is officially in the books. The foundation is set, and I'm ready to tackle the next phase! πͺ
Tags: #100DaysOfDevOps #DevOps #AWS #Linux #CloudComputing #NGINX #SystemAdministration #TechJourney #TrainWithShubham

