Lab 01 — Linux Administration
Welcome to your first hands-on Linux lab.
You have completed the Linux certification learning path:
Linux Essentials ↓LPIC-1 ↓CompTIA Linux+ ↓RHCSA ↓RHCENow we move from:
Learning Linuxto:
Operating LinuxThis lab brings the major administration concepts together into one practical workflow.
Mission Information
Section titled “Mission Information”Lab: Linux Administration
Level: Beginner → Intermediate
Estimated Time: 90–120 minutes
Environment: Authorized Linux VM or disposable lab server
Primary Role: Linux Administrator
Secondary Roles: Cloud Engineer, SOC Analyst, Security Engineer, DevOps Engineer
Mission Scenario
Section titled “Mission Scenario”You have joined an infrastructure team responsible for a newly provisioned Linux server.
Before the server can be handed over to an application team, you have been asked to perform an administrative readiness review.
Your responsibilities include:
Identify the System
Inspect Resources
Understand the Filesystem
Review Users and Groups
Create Controlled Lab Identities
Configure Permissions
Inspect Processes
Manage Services
Review Packages
Inspect Storage
Validate Networking
Review Logs
Inspect Scheduled Tasks
Assess System Health
Troubleshoot Problems
Document the ServerThe objective is not simply to execute commands.
You must understand:
What Am I Checking?
Why Am I Checking It?
What Does the Result Mean?
What Should I Validate?Lab Architecture
Section titled “Lab Architecture”+--------------------------+| Your Workstation |+------------+-------------+ | | SSH / Console | v+--------------------------+| Linux Lab Server || || Users || Groups || Files || Processes || Services || Packages || Storage || Network || Logs |+--------------------------+You only need one Linux VM for this lab.
Recommended Lab Environment
Section titled “Recommended Lab Environment”You may use an authorized disposable VM running a mainstream Linux distribution such as:
Ubuntu
Debian
Rocky Linux
AlmaLinux
Red Hat Enterprise LinuxCommands can vary slightly between distributions.
Where appropriate, the lab explains the concept rather than assuming every Linux distribution behaves identically.
Safety Rules
Section titled “Safety Rules”Use only:
Your Own VM
Your Organization's Authorized Lab
An Approved Training EnvironmentDo not practice administrative changes on production systems unless specifically authorized.
Before changing:
Users
Permissions
Packages
Services
Storage
Networkingunderstand the impact first.
Lab Objectives
Section titled “Lab Objectives”By completing this lab, you should be able to:
- Identify a Linux system
- Navigate the filesystem
- Create and manage files and directories
- Understand Linux filesystem hierarchy
- Review users and groups
- Create training users and groups
- Configure ownership and permissions
- Inspect running processes
- Review and manage services
- Inspect installed packages
- Review storage and filesystem utilization
- Understand mount points
- Review network configuration
- Identify listening services
- Review system logs
- Inspect scheduled tasks
- Evaluate basic system health
- Troubleshoot common Linux problems
- Produce an administration report
Part 01 — Connect to the Linux Server
Section titled “Part 01 — Connect to the Linux Server”Connect using either:
Consoleor an approved remote administration method such as:
SSHOnce connected, do not immediately begin changing the system.
First determine:
Who Am I?
Where Am I?
Which Server Is This?Step 01 — Identify Your Current User
Section titled “Step 01 — Identify Your Current User”Run:
whoamiRecord the result.
Then:
idObserve:
UID
Primary GID
Group MembershipWhy This Matters
Section titled “Why This Matters”Before performing administration, always know:
Which IdentityIs Executing Commands?The privileges of your current identity determine what you can access and modify.
Step 02 — Identify the Host
Section titled “Step 02 — Identify the Host”Run:
hostnameThen:
hostnamectlwhere supported.
Record:
Hostname
Operating System
ArchitectureStep 03 — Identify the Distribution
Section titled “Step 03 — Identify the Distribution”Review:
cat /etc/os-releaseLook for information such as:
Distribution Name
Version
Distribution FamilyStep 04 — Identify the Kernel
Section titled “Step 04 — Identify the Kernel”Run:
uname -rThen:
uname -aUnderstand the difference between:
Linux Distributionand:
Linux KernelStep 05 — Review Uptime
Section titled “Step 05 — Review Uptime”Run:
uptimeRecord:
Current Time
Uptime
Logged-In Users
Load AveragesDo not interpret load numbers in isolation.
They must be considered alongside:
CPU
Processes
I/O
WorkloadCheckpoint 01
Section titled “Checkpoint 01”You should now be able to document:
Hostname:
Distribution:
Version:
Kernel:
Architecture:
Current User:
UID:
Groups:
Uptime:Part 02 — Explore the Linux Filesystem
Section titled “Part 02 — Explore the Linux Filesystem”Linux organizes resources under:
/The root of the filesystem hierarchy.
Run:
pwdThen:
ls /Important Directories
Section titled “Important Directories”Become familiar with:
| Directory | Typical Purpose |
|---|---|
/etc |
System and application configuration |
/home |
Regular user home directories |
/root |
Root user’s home directory |
/var |
Variable application and system data |
/var/log |
Common log location |
/tmp |
Temporary files |
/usr |
User-space programs and supporting data |
/opt |
Optional/additional software |
/boot |
Boot-related files |
/dev |
Device interfaces |
/proc |
Process/kernel runtime information |
/sys |
Kernel/device information |
Exact layouts can vary by distribution.
Step 06 — Navigate Directories
Section titled “Step 06 — Navigate Directories”Practice:
cd /pwdThen:
cd /etcpwdReturn to your home directory:
cd ~Step 07 — List Files
Section titled “Step 07 — List Files”Run:
lsThen:
ls -lThen:
ls -laObserve:
File Type
Permissions
Owner
Group
Size
Timestamp
NameStep 08 — Understand Hidden Files
Section titled “Step 08 — Understand Hidden Files”Files beginning with:
.are normally hidden from basic directory listings.
Examples may include:
.bashrc
.profile
.sshUse:
ls -lato include hidden entries.
Part 03 — Create a Lab Workspace
Section titled “Part 03 — Create a Lab Workspace”Do not scatter training files across the system.
Create a dedicated workspace inside your home directory.
mkdir -p ~/linux-admin-labMove into it:
cd ~/linux-admin-labConfirm:
pwdStep 09 — Create Directories
Section titled “Step 09 — Create Directories”Create:
mkdir documentsmkdir logsmkdir backupsVerify:
ls -lStep 10 — Create Files
Section titled “Step 10 — Create Files”Create harmless training files:
touch documents/server-info.txttouch documents/admin-notes.txtVerify:
ls -l documentsStep 11 — Write Content
Section titled “Step 11 — Write Content”Add some lab information:
echo "Linux Administration Lab" > documents/server-info.txtRead it:
cat documents/server-info.txtAppend another line:
echo "Hostname: $(hostname)" >> documents/server-info.txtReview:
cat documents/server-info.txtImportant Concept
Section titled “Important Concept”Understand:
>versus:
>>> writes output to a file and can replace existing contents.
>> appends output.
Be careful when redirecting output into important configuration files.
Step 12 — Copy Files
Section titled “Step 12 — Copy Files”cp documents/server-info.txt backups/server-info.bakVerify:
ls -l backupsStep 13 — Move and Rename Files
Section titled “Step 13 — Move and Rename Files”mv documents/admin-notes.txt documents/operations-notes.txtVerify:
ls -l documentsStep 14 — Search for Files
Section titled “Step 14 — Search for Files”From your lab directory:
find . -name "server-info*"Understand:
Search Location
Search Criteria
Matching ResultsPart 04 — Work With Text
Section titled “Part 04 — Work With Text”Linux administrators frequently work with:
Configuration Files
Logs
Reports
Command OutputStep 15 — Read Files Safely
Section titled “Step 15 — Read Files Safely”Practice:
cat documents/server-info.txtFor longer files, tools such as:
less /etc/servicesmay be more practical.
Exit less with:
qStep 16 — View Beginning and End
Section titled “Step 16 — View Beginning and End”Practice against an appropriate readable text file:
head /etc/servicesand:
tail /etc/servicesStep 17 — Search Text
Section titled “Step 17 — Search Text”Example:
grep "ssh" /etc/servicesThe exact output depends on the system.
Step 18 — Use Pipes
Section titled “Step 18 — Use Pipes”Run:
cat /etc/services | grep "ssh"Conceptually:
Command 1 ↓Output ↓Pipe ↓Command 2A more direct form is often:
grep "ssh" /etc/servicesThe exercise demonstrates how pipelines work.
Part 05 — Review Users
Section titled “Part 05 — Review Users”Linux identities are fundamental to both administration and security.
Review:
cat /etc/passwdDo not interpret this file as containing plaintext passwords.
Modern Linux systems normally store password-verifier information separately with restricted access.
Step 19 — Understand passwd Entries
Section titled “Step 19 — Understand passwd Entries”A typical entry conceptually contains:
Username
UID
GID
Description
Home Directory
Login ShellStep 20 — Find Your Account
Section titled “Step 20 — Find Your Account”Use:
getent passwd "$(whoami)"Record:
Username:
UID:
GID:
Home:
Shell:Step 21 — Review Groups
Section titled “Step 21 — Review Groups”Run:
groupsThen:
getent groupYou do not need to memorize every system group.
Focus on understanding:
User ↓Group Membership ↓AccessPart 06 — Create a Training Group
Section titled “Part 06 — Create a Training Group”The following exercises require administrative authorization on your lab VM.
Create a training group:
sudo groupadd labadminsVerify:
getent group labadminsStep 22 — Create a Training User
Section titled “Step 22 — Create a Training User”Create:
sudo useradd -m labuserVerify:
getent passwd labuserDepending on your distribution and lab objectives, password configuration can be handled through your normal approved account-management process.
Step 23 — Add User to Group
Section titled “Step 23 — Add User to Group”sudo usermod -aG labadmins labuserVerify:
id labuserYou should see:
labadminsamong the user’s groups.
Important Administrative Lesson
Section titled “Important Administrative Lesson”Be careful with group modification.
Your objective is:
Add Membershipwithout accidentally removing required existing memberships.
Part 07 — Linux Permissions
Section titled “Part 07 — Linux Permissions”Create a shared training directory:
sudo mkdir -p /srv/linux-admin-labReview:
ls -ld /srv/linux-admin-labStep 24 — Configure Group Ownership
Section titled “Step 24 — Configure Group Ownership”Assign the training group:
sudo chown root:labadmins /srv/linux-admin-labVerify:
ls -ld /srv/linux-admin-labStep 25 — Configure Permissions
Section titled “Step 25 — Configure Permissions”Set:
sudo chmod 770 /srv/linux-admin-labReview:
ls -ld /srv/linux-admin-labInterpret:
Owner:rwx
Group:rwx
Others:---Permission Model
Section titled “Permission Model”OWNER ↓Read Write Execute
GROUP ↓Read Write Execute
OTHERS ↓No AccessStep 26 — Understand Numeric Permissions
Section titled “Step 26 — Understand Numeric Permissions”Remember:
Read = 4
Write = 2
Execute = 1Therefore:
7 = rwx
6 = rw-
5 = r-x
4 = r--
0 = ---Security Question
Section titled “Security Question”Why is:
777usually a poor default for sensitive directories?
Because it may provide unnecessary access to:
Other UsersA better approach is:
Business Requirement ↓Required Users/Groups ↓Minimum PermissionPart 08 — Directory Permissions
Section titled “Part 08 — Directory Permissions”Directory permissions have important semantics.
For a directory:
Readrelates to listing directory entries.
Writerelates to creating/removing entries.
Executerelates to traversing/accessing entries through the directory.
Understanding this is critical when troubleshooting access problems.
Part 09 — Inspect Processes
Section titled “Part 09 — Inspect Processes”Run:
psThen:
ps auxReview fields such as:
USER
PID
CPU
MEMORY
COMMANDStep 27 — Investigate Your Shell
Section titled “Step 27 — Investigate Your Shell”Find your current shell process.
You can inspect your shell PID with:
echo $$Then:
ps -p $$ -o pid,ppid,user,cmdObserve:
PID
PPID
User
CommandProcess Relationship
Section titled “Process Relationship”Parent Process ↓Child Process ↓Child ProcessProcess ancestry is extremely useful during incident investigation.
Step 28 — Real-Time Process Monitoring
Section titled “Step 28 — Real-Time Process Monitoring”If available:
topObserve:
CPU
Memory
Load
ProcessesExit with:
qSecurity Perspective
Section titled “Security Perspective”Unexpected resource consumption may result from:
Legitimate Workload
Application Failure
Misconfiguration
Runaway Process
Unexpected SoftwareEvidence must determine which.
Part 10 — Create a Safe Background Process
Section titled “Part 10 — Create a Safe Background Process”Run:
sleep 300 &The shell should display a background job.
Run:
jobsFind it:
ps -ef | grep "[s]leep 300"Step 29 — Stop the Training Process
Section titled “Step 29 — Stop the Training Process”Use the job mechanism where appropriate:
kill %1Then:
jobsThe exact job number may differ if other background jobs exist.
Important Lesson
Section titled “Important Lesson”Do not use:
kill -9as your first response to every process problem.
Prefer:
Understand Process ↓Request Graceful Termination ↓Escalate Only if NecessaryPart 11 — Review Services
Section titled “Part 11 — Review Services”Modern Linux distributions commonly use systemd.
Check:
systemctl --versionThen review running services:
systemctl --type=service --state=runningStep 30 — Select a Harmless Service
Section titled “Step 30 — Select a Harmless Service”Choose a service already present on your lab VM.
For example, your environment may have an SSH service.
Review status using the correct service name for your distribution.
Conceptually:
systemctl status <service-name>Observe
Section titled “Observe”Loaded
Active
PID
Recent LogsStep 31 — Understand Service States
Section titled “Step 31 — Understand Service States”Know the distinction between:
Running Nowand:
Configured to Start AutomaticallyThese are different operational states.
Service Lifecycle
Section titled “Service Lifecycle”Installed ↓Configured ↓Started ↓Enabled ↓MonitoredPart 12 — Review Service Logs
Section titled “Part 12 — Review Service Logs”For a selected systemd service:
journalctl -u <service-name>For recent entries:
journalctl -u <service-name> -n 20Troubleshooting Pattern
Section titled “Troubleshooting Pattern”Service Problem ↓Status ↓Logs ↓Configuration ↓Dependencies ↓Permissions ↓NetworkPart 13 — Package Management
Section titled “Part 13 — Package Management”First determine your distribution.
Debian/Ubuntu-oriented systems commonly use:
APT / dpkgRed Hat-oriented systems commonly use:
DNF / RPMStep 32 — Inspect Installed Packages
Section titled “Step 32 — Inspect Installed Packages”On Debian-family systems, an example is:
dpkg -lOn RPM-family systems:
rpm -qaDo not install or remove packages blindly.
Step 33 — Query a Package
Section titled “Step 33 — Query a Package”Choose a known installed package and inspect its information using the appropriate package manager.
Your goal is to understand:
Package Name
Version
Architecture
SourceSecurity Perspective
Section titled “Security Perspective”Package management affects:
Vulnerability Management
Patch Management
Software Inventory
Supply-Chain SecurityPart 14 — Review Storage
Section titled “Part 14 — Review Storage”Run:
lsblkObserve:
Disk
Partition
Size
Mount PointThen:
df -hReview filesystem utilization.
Step 34 — Check Your Lab Directory Size
Section titled “Step 34 — Check Your Lab Directory Size”Run:
du -sh ~/linux-admin-labUnderstand:
dfversus:
duConceptually:
df→ Filesystem Utilization
du→ File/Directory UtilizationStep 35 — Review Filesystem Types
Section titled “Step 35 — Review Filesystem Types”Run:
df -ThRecord:
Filesystem
Type
Size
Used
Available
Mount PointStep 36 — Review Mounts
Section titled “Step 36 — Review Mounts”Use:
findmntObserve the relationship:
Device ↓Filesystem ↓Mount PointImportant Safety Note
Section titled “Important Safety Note”Do not practice destructive storage operations against your primary system disk.
Partitioning, formatting, and filesystem creation should be performed only on:
Disposable Lab StoragePart 15 — Review Inodes
Section titled “Part 15 — Review Inodes”Run:
df -iWhy?
Because:
Free Disk Spacedoes not always mean:
New Files Can Be CreatedA filesystem can run out of available inodes.
Troubleshooting Model
Section titled “Troubleshooting Model”No Space Left ↓Check Capacity +Check InodesPart 16 — Review Networking
Section titled “Part 16 — Review Networking”Run:
ip addrRecord:
Interface
State
IP AddressStep 37 — Review Routes
Section titled “Step 37 — Review Routes”Run:
ip routeIdentify:
Connected Routes
Default Route
GatewayStep 38 — Review Hostname
Section titled “Step 38 — Review Hostname”hostnameThen, where appropriate:
hostname -fThe fully qualified hostname may depend on local DNS and host configuration.
Step 39 — Test Basic Connectivity
Section titled “Step 39 — Test Basic Connectivity”In your authorized lab network, test an approved reachable destination.
ping -c 4 <approved-destination>Remember:
Ping Failuredoes not automatically prove:
Host Is DownICMP may be filtered.
Part 17 — Review DNS
Section titled “Part 17 — Review DNS”If available, use an appropriate DNS lookup utility installed in your environment.
Your troubleshooting model is:
Can Reach IP? ↓Can Resolve Name? ↓Can Reach Service?Separating these layers prevents confusion.
Part 18 — Review Listening Ports
Section titled “Part 18 — Review Listening Ports”Run:
ss -lntFor a broader socket view:
ss -lntuWith appropriate privilege, process information may also be available:
sudo ss -lntupRecord
Section titled “Record”Choose a few listening services and document:
Protocol
Local Address
Port
Process/Service
Expected?Security Perspective
Section titled “Security Perspective”Every listening service should answer:
What Is It?
Who Owns It?
Why Is It Running?
Who Can Reach It?
Is It Required?Part 19 — Network Troubleshooting Workflow
Section titled “Part 19 — Network Troubleshooting Workflow”When connectivity fails, use:
01 Interface
02 IP Address
03 Subnet
04 Route
05 Gateway
06 DNS
07 Listening Port
08 Firewall
09 ApplicationAvoid jumping directly to:
Restart EverythingPart 20 — Review System Logs
Section titled “Part 20 — Review System Logs”Depending on your distribution, logs may be available through:
systemd journaland/or files under:
/var/logStart with:
journalctl -n 50Review only authorized system information.
Step 40 — Review Boot Logs
Section titled “Step 40 — Review Boot Logs”journalctl -bThis can help investigate:
Boot Problems
Service Failures
Device Problems
Configuration ErrorsStep 41 — Review Authentication Activity
Section titled “Step 41 — Review Authentication Activity”Authentication logging differs across distributions.
Possible sources include:
systemd Journal
/var/log/auth.log
/var/log/secureDo not assume every distribution uses the same file.
Security Perspective
Section titled “Security Perspective”Authentication evidence may help investigate:
Successful Logins
Failed Logins
sudo Activity
Account ProblemsPart 21 — Review Logged-In Users
Section titled “Part 21 — Review Logged-In Users”Run:
whoThen:
wObserve:
User
Terminal
Login Time
Source
Current ActivityStep 42 — Review Login History
Section titled “Step 42 — Review Login History”Where available:
lastUse this to understand historical login activity.
Security Question
Section titled “Security Question”Suppose you find:
Successful Login
Unknown Source
Privileged User
Unexpected TimeDo not immediately conclude compromise.
Instead:
Validate Identity ↓Validate Source ↓Review Authentication Evidence ↓Review Activity ↓Build TimelinePart 22 — Review Scheduled Tasks
Section titled “Part 22 — Review Scheduled Tasks”Scheduled tasks are useful for:
Maintenance
Backups
Automation
ReportingThey are also security-relevant because unauthorized scheduled execution can provide persistence.
Step 43 — Review Your Cron Configuration
Section titled “Step 43 — Review Your Cron Configuration”Run:
crontab -lIf no personal crontab exists, that is acceptable.
Review system scheduling locations appropriate to your distribution, without modifying them.
Investigation Questions
Section titled “Investigation Questions”Which User Runs It?
What Command Executes?
When?
Who Created It?
Is It Required?Part 23 — Review Environment Variables
Section titled “Part 23 — Review Environment Variables”Run:
envReview variables such as:
HOME
USER
SHELL
PATHStep 44 — Inspect PATH
Section titled “Step 44 — Inspect PATH”echo "$PATH"Understand:
Command Entered ↓Shell Searches PATH ↓Executable Found ↓Command RunsSecurity Perspective
Section titled “Security Perspective”PATH configuration matters because executable search order can affect which program is executed.
Part 24 — Review System Resource Health
Section titled “Part 24 — Review System Resource Health”Collect:
uptimeThen:
free -hThen:
df -hThen review processes:
ps auxHealth Snapshot
Section titled “Health Snapshot”Record:
Load:
Memory:
Swap:
Disk:
Top Processes:
Unexpected Conditions:Part 25 — Create a System Inventory Report
Section titled “Part 25 — Create a System Inventory Report”Return to your lab workspace:
cd ~/linux-admin-labCreate:
touch system-inventory.txtCollect non-sensitive information into the report.
For example:
echo "Linux Administration Inventory" > system-inventory.txtecho "Hostname: $(hostname)" >> system-inventory.txtecho "Kernel: $(uname -r)" >> system-inventory.txtecho "Current User: $(whoami)" >> system-inventory.txtecho "Date: $(date)" >> system-inventory.txtReview:
cat system-inventory.txtPart 26 — Build a Simple Administration Script
Section titled “Part 26 — Build a Simple Administration Script”Create:
nano system-check.shor use another text editor available in your environment.
Add:
#!/bin/bash
echo "Linux Administration System Check"echo "================================="echo "Hostname: $(hostname)"echo "Date: $(date)"echo "Current User: $(whoami)"echoecho "Uptime:"uptimeechoecho "Memory:"free -hechoecho "Filesystem Usage:"df -hechoecho "Network Interfaces:"ip -brief addrSave the file.
Step 45 — Make It Executable
Section titled “Step 45 — Make It Executable”chmod u+x system-check.shRun:
./system-check.shWhat You Just Built
Section titled “What You Just Built”You transformed:
Multiple Manual Checksinto:
Repeatable AdministrationThis is your bridge toward:
Shell Automation
Ansible
RHCE
DevOpsPart 27 — Troubleshooting Exercise 01
Section titled “Part 27 — Troubleshooting Exercise 01”Scenario
Section titled “Scenario”A user reports:
I Cannot Accessthe Shared DirectoryUse:
USER ↓GROUP ↓OWNER ↓PERMISSIONS ↓PARENT DIRECTORY ↓ACL / SECURITY POLICYQuestions:
- Which user is affected?
- Which groups does the user belong to?
- Who owns the directory?
- Which group owns it?
- What are the permissions?
- Does the user have effective access?
- Is another security layer involved?
Part 28 — Troubleshooting Exercise 02
Section titled “Part 28 — Troubleshooting Exercise 02”Scenario
Section titled “Scenario”An application team reports:
Service Is Not RunningUse:
SERVICE STATUS ↓LOGS ↓CONFIGURATION ↓DEPENDENCIES ↓PERMISSIONS ↓PORT ↓SECURITY CONTROLDo not begin by randomly restarting services.
Part 29 — Troubleshooting Exercise 03
Section titled “Part 29 — Troubleshooting Exercise 03”Scenario
Section titled “Scenario”A user reports:
Server Cannot Reachan ApplicationUse:
Interface ↓IP ↓Route ↓DNS ↓Port ↓Firewall ↓ApplicationDocument which layer fails.
Part 30 — Troubleshooting Exercise 04
Section titled “Part 30 — Troubleshooting Exercise 04”Scenario
Section titled “Scenario”An application reports:
No Space Left on DeviceInvestigate:
Filesystem Capacity
Inodes
Large Directories
Unexpected Growth
Mount StateDo not delete files until you understand:
What They Are
Who Owns Them
Why They Exist
Whether Retention Is RequiredPart 31 — Troubleshooting Exercise 05
Section titled “Part 31 — Troubleshooting Exercise 05”Scenario
Section titled “Scenario”A server becomes unusually slow.
Review:
CPU
Load
Memory
Swap
Processes
Storage
Network
LogsDo not assume:
High CPUis always the root cause.
Part 32 — Administrative Troubleshooting Method
Section titled “Part 32 — Administrative Troubleshooting Method”Use this method for almost every Linux problem:
01 Understand the Symptom
02 Determine Scope
03 Collect Evidence
04 Identify the Layer
05 Review Recent Changes
06 Form a Hypothesis
07 Test Safely
08 Apply Minimum Fix
09 Validate
10 DocumentPart 33 — Security Review
Section titled “Part 33 — Security Review”Now perform a basic administrative security review.
Do not change anything yet.
Review:
Users
Groups
Administrative Access
Permissions
Services
Packages
Listening Ports
Logs
Scheduled TasksStep 46 — User Review
Section titled “Step 46 — User Review”Ask:
Are All Accounts Recognized?
Are Service Accounts Appropriate?
Are Disabled Accounts Still Active?
Are Group Memberships Appropriate?Step 47 — Privilege Review
Section titled “Step 47 — Privilege Review”Ask:
Who Has Administrative Access?
Why?
Is It Required?
Is It Excessive?Step 48 — Service Review
Section titled “Step 48 — Service Review”Ask:
Which Services Are Running?
Which Are Network Accessible?
Are All Required?Step 49 — Package Review
Section titled “Step 49 — Package Review”Ask:
What Software Is Installed?
Is It Required?
Is It Supported?
Is It Maintained?Step 50 — Logging Review
Section titled “Step 50 — Logging Review”Ask:
Are Logs Available?
Are Authentication Events Recorded?
Are Service Events Recorded?
Can Activity Be Investigated?Part 34 — Finding Example
Section titled “Part 34 — Finding Example”Suppose you identify an unnecessary network service.
Document it professionally.
Finding:Unnecessary Network Service Enabled
Observation:A network-facing service is running onthe Linux server without a confirmedbusiness requirement.
Security Concern:Unnecessary services increase thesystem's reachable attack surface.
Recommendation:Confirm application ownership andbusiness requirements. If the serviceis unnecessary, disable it through theapproved change-management process.Part 35 — Finding Example: Excessive Permissions
Section titled “Part 35 — Finding Example: Excessive Permissions”Finding:Overly Broad Directory Permissions
Observation:A shared directory grants access beyondthe users who require the resource.
Security Concern:Unauthorized users may be able to read,modify, or delete data.
Recommendation:Map required access to approved usersand groups and apply least-privilegefilesystem permissions.Part 36 — Finding Example: Administrative Access
Section titled “Part 36 — Finding Example: Administrative Access”Finding:Administrative Access Requires Review
Observation:One or more accounts have elevatedadministrative permissions.
Security Concern:Excessive administrative accessincreases the impact of credentialcompromise or administrative error.
Recommendation:Validate business requirements andreduce administrative access to theminimum permissions required.Part 37 — Create Your Administration Report
Section titled “Part 37 — Create Your Administration Report”Create a report containing:
Linux Administration Lab ReportInclude:
1. System Information
Section titled “1. System Information”Hostname
Distribution
Version
Kernel
Architecture
Uptime2. Identity
Section titled “2. Identity”Current User
Administrative Access
Training User
Training Group3. Filesystem
Section titled “3. Filesystem”Important Mounts
Filesystem Usage
Inode Usage4. Services
Section titled “4. Services”Important Running Services
Startup State
Observed Issues5. Networking
Section titled “5. Networking”Interfaces
IP Addresses
Default Route
Listening Ports6. Logging
Section titled “6. Logging”Journal Available?
Authentication Evidence?
Service Logs?7. Security Observations
Section titled “7. Security Observations”For each:
Finding
Observation
Risk
RecommendationPart 38 — Evidence Checklist
Section titled “Part 38 — Evidence Checklist”Capture appropriate non-sensitive evidence for:
- Operating system
- Kernel
- Hostname
- Current identity
- User/group configuration
- Training permissions
- Process review
- Service review
- Package review
- Filesystem usage
- Mount points
- Network interfaces
- Routing
- Listening ports
- System logs
- Scheduled task review
- System health
- Security observations
Do not include:
Passwords
Private SSH Keys
Tokens
Sensitive Application Secretsin your lab report.
Part 39 — Clean Up the Training Identities
Section titled “Part 39 — Clean Up the Training Identities”If these identities were created only for this disposable lab and are no longer required, remove them after completing your evidence collection.
First verify:
Training User:labuser
Training Group:labadminsThen follow your distribution’s approved account-removal process.
For example, on many systems:
sudo userdel -r labuserThen, after verifying the group is no longer required:
sudo groupdel labadminsDo not remove real system or application identities.
Part 40 — Clean Up Shared Lab Data
Section titled “Part 40 — Clean Up Shared Lab Data”If:
/srv/linux-admin-labwas created only for this exercise, verify its contents before removal.
Never use recursive deletion against an unverified path.
A professional administrator always confirms:
Target
Contents
Business Requirement
Backup Requirementbefore deletion.
Lab Validation
Section titled “Lab Validation”You should now be able to answer:
Which Linux system am I administering?
Which identity am I using?
How is the filesystem organized?
Who has access?
Which processes are running?
Which services are active?
What software is installed?
How is storage configured?
How is the server connected?
Which ports are listening?
Where are the logs?
Which scheduled tasks exist?
Is the system healthy?
Can I troubleshoot common failures?Administrator’s Mental Model
Section titled “Administrator’s Mental Model”When you receive an unfamiliar Linux server, use:
SYSTEM ↓IDENTITY ↓FILES ↓PROCESSES ↓SERVICES ↓SOFTWARE ↓STORAGE ↓NETWORK ↓LOGGING ↓SECURITYDo not randomly execute commands.
Move systematically through the system.
Linux Administration vs Cybersecurity
Section titled “Linux Administration vs Cybersecurity”Linux administration and Linux security are closely connected.
ADMINISTRATION ↓Understand Expected State
SECURITY ↓Identify Unexpected StateFor example:
Administrator:Which service should be running?
Security Analyst:Why is this unexpected service running?Another example:
Administrator:Which users require sudo?
Security Analyst:Why does this unexpected account have sudo?This is why strong Linux administration knowledge is so valuable in cybersecurity.
Career Connection
Section titled “Career Connection”The skills practiced in this lab directly support:
Linux Administrator
System Administrator
Cloud Engineer
DevOps Engineer
SOC Analyst
Security Engineer
Cloud Security Engineer
Platform EngineerInterview Scenarios
Section titled “Interview Scenarios”Scenario 01
Section titled “Scenario 01”A Linux server is slow. What do you investigate?
Look across:
Load
CPU
Memory
Swap
Processes
Storage
I/O
Network
Logs
Recent ChangesScenario 02
Section titled “Scenario 02”A service does not start. What do you check?
Status
Logs
Configuration
Dependencies
Permissions
Port
Security ControlsScenario 03
Section titled “Scenario 03”A user cannot access a directory. What do you review?
Identity
Groups
Ownership
Permissions
Parent Directories
ACLs
Additional Security ControlsScenario 04
Section titled “Scenario 04”A server has free disk space but cannot create files. Why?
One possible cause is:
Inode ExhaustionScenario 05
Section titled “Scenario 05”You discover an unknown listening port. What do you do?
Port ↓Process ↓User ↓Service ↓Business Requirement ↓Network Exposure30 Linux Administration Interview Questions
Section titled “30 Linux Administration Interview Questions”- How do you identify the Linux distribution?
- How do you identify the running kernel?
- What is the difference between UID and GID?
- What information does
idprovide? - What is the purpose of
/etc/passwd? - What is the difference between a user and a group?
- What do Linux
rwxpermissions represent? - What does permission
750mean? - What is the purpose of
chown? - What is the difference between
>and>>? - What is a Linux process?
- What is the difference between PID and PPID?
- How would you investigate a high-CPU process?
- What is systemd?
- What is the difference between starting and enabling a service?
- How would you troubleshoot a failed service?
- What is a package manager?
- Why is package inventory security-relevant?
- What does
dftell you? - What does
dutell you? - What is an inode?
- What is a mount point?
- What information does
ip addrprovide? - What does
ip routeshow? - How would you identify listening ports?
- Why might ping fail even when a host is available?
- Why are logs important?
- Why should scheduled tasks be reviewed?
- Why should administrators avoid unnecessary root usage?
- What troubleshooting methodology do you use for Linux problems?
Lab Completion Checklist
Section titled “Lab Completion Checklist”System
Section titled “System”- Identified hostname
- Identified distribution
- Identified kernel
- Reviewed uptime
- Reviewed current identity
- Navigated filesystem
- Created lab workspace
- Created files
- Copied files
- Renamed files
- Searched files
- Used text filtering
- Reviewed users
- Reviewed groups
- Created training group
- Created training user
- Validated membership
Permissions
Section titled “Permissions”- Reviewed ownership
- Modified training ownership
- Modified training permissions
- Understood numeric permissions
- Applied least privilege
Processes
Section titled “Processes”- Reviewed processes
- Identified PID/PPID
- Created safe background process
- Terminated training process safely
Services
Section titled “Services”- Reviewed running services
- Inspected service status
- Reviewed service logs
- Understood running vs enabled state
Packages
Section titled “Packages”- Identified package-management family
- Reviewed installed packages
- Understood package-security implications
Storage
Section titled “Storage”- Reviewed block devices
- Reviewed filesystem capacity
- Reviewed filesystem types
- Reviewed mounts
- Reviewed inode utilization
Network
Section titled “Network”- Reviewed interfaces
- Reviewed IP addresses
- Reviewed routes
- Reviewed DNS concepts
- Reviewed listening ports
- Practiced layered troubleshooting
- Reviewed system journal
- Reviewed boot events
- Identified authentication evidence
- Reviewed login history
Automation
Section titled “Automation”- Reviewed environment variables
- Reviewed scheduled tasks
- Built simple system-check script
Security
Section titled “Security”- Reviewed accounts
- Reviewed privileges
- Reviewed services
- Reviewed ports
- Reviewed logs
- Created security observations
Documentation
Section titled “Documentation”- Created system inventory
- Recorded evidence
- Documented findings
- Created administration report
Mission Accomplished
Section titled “Mission Accomplished”You have now performed a practical Linux administration workflow covering:
System Discovery
Filesystem Administration
Identity Management
Permission Management
Process Management
Service Management
Package Review
Storage Administration
Networking
Logging
Automation
Troubleshooting
Security ReviewMore importantly, you practiced the professional Linux workflow:
OBSERVE ↓UNDERSTAND ↓CONFIGURE ↓VALIDATE ↓TROUBLESHOOT ↓DOCUMENTThis foundation is critical because secure Linux systems cannot be built without first understanding how Linux systems are administered.
What’s Next?
Section titled “What’s Next?”➡️ Lab 02 — Linux Hardening
In the next lab, you will take a functioning Linux server and move from:
Linux Administrationto:
Secure Linux AdministrationYou will work through:
Security Baseline ↓Account Hardening ↓Privilege Review ↓SSH Hardening ↓Filesystem Security ↓Service Reduction ↓Package and Patch Review ↓Host Firewall ↓Logging and Auditing ↓Security ValidationYour Linux lab journey continues:
Lab 01 — Linux Administration ↓Lab 02 — Linux Hardening ↓Lab 03 — Linux IAM ↓Lab 04 — Linux Networking ↓Lab 05 — Linux Security ↓Linux Incident Investigation ↓Linux Security Assessment ↓Linux Server Hardening