Skip to content

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
RHCE

Now we move from:

Learning Linux

to:

Operating Linux

This lab brings the major administration concepts together into one practical workflow.

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

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 Server

The 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?
+--------------------------+
| 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.

You may use an authorized disposable VM running a mainstream Linux distribution such as:

Ubuntu
Debian
Rocky Linux
AlmaLinux
Red Hat Enterprise Linux

Commands can vary slightly between distributions.

Where appropriate, the lab explains the concept rather than assuming every Linux distribution behaves identically.

Use only:

Your Own VM
Your Organization's Authorized Lab
An Approved Training Environment

Do not practice administrative changes on production systems unless specifically authorized.

Before changing:

Users
Permissions
Packages
Services
Storage
Networking

understand the impact first.

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

Connect using either:

Console

or an approved remote administration method such as:

SSH

Once connected, do not immediately begin changing the system.

First determine:

Who Am I?
Where Am I?
Which Server Is This?

Run:

Terminal window
whoami

Record the result.

Then:

Terminal window
id

Observe:

UID
Primary GID
Group Membership

Before performing administration, always know:

Which Identity
Is Executing Commands?

The privileges of your current identity determine what you can access and modify.

Run:

Terminal window
hostname

Then:

Terminal window
hostnamectl

where supported.

Record:

Hostname
Operating System
Architecture

Review:

Terminal window
cat /etc/os-release

Look for information such as:

Distribution Name
Version
Distribution Family

Run:

Terminal window
uname -r

Then:

Terminal window
uname -a

Understand the difference between:

Linux Distribution

and:

Linux Kernel

Run:

Terminal window
uptime

Record:

Current Time
Uptime
Logged-In Users
Load Averages

Do not interpret load numbers in isolation.

They must be considered alongside:

CPU
Processes
I/O
Workload

You should now be able to document:

Hostname:
Distribution:
Version:
Kernel:
Architecture:
Current User:
UID:
Groups:
Uptime:

Linux organizes resources under:

/

The root of the filesystem hierarchy.

Run:

Terminal window
pwd

Then:

Terminal window
ls /

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.

Practice:

Terminal window
cd /
pwd

Then:

Terminal window
cd /etc
pwd

Return to your home directory:

Terminal window
cd ~

Run:

Terminal window
ls

Then:

Terminal window
ls -l

Then:

Terminal window
ls -la

Observe:

File Type
Permissions
Owner
Group
Size
Timestamp
Name

Files beginning with:

.

are normally hidden from basic directory listings.

Examples may include:

.bashrc
.profile
.ssh

Use:

Terminal window
ls -la

to include hidden entries.

Do not scatter training files across the system.

Create a dedicated workspace inside your home directory.

Terminal window
mkdir -p ~/linux-admin-lab

Move into it:

Terminal window
cd ~/linux-admin-lab

Confirm:

Terminal window
pwd

Create:

Terminal window
mkdir documents
mkdir logs
mkdir backups

Verify:

Terminal window
ls -l

Create harmless training files:

Terminal window
touch documents/server-info.txt
touch documents/admin-notes.txt

Verify:

Terminal window
ls -l documents

Add some lab information:

Terminal window
echo "Linux Administration Lab" > documents/server-info.txt

Read it:

Terminal window
cat documents/server-info.txt

Append another line:

Terminal window
echo "Hostname: $(hostname)" >> documents/server-info.txt

Review:

Terminal window
cat documents/server-info.txt

Understand:

>

versus:

>>

> writes output to a file and can replace existing contents.

>> appends output.

Be careful when redirecting output into important configuration files.

Terminal window
cp documents/server-info.txt backups/server-info.bak

Verify:

Terminal window
ls -l backups
Terminal window
mv documents/admin-notes.txt documents/operations-notes.txt

Verify:

Terminal window
ls -l documents

From your lab directory:

Terminal window
find . -name "server-info*"

Understand:

Search Location
Search Criteria
Matching Results

Linux administrators frequently work with:

Configuration Files
Logs
Reports
Command Output

Practice:

Terminal window
cat documents/server-info.txt

For longer files, tools such as:

Terminal window
less /etc/services

may be more practical.

Exit less with:

q

Practice against an appropriate readable text file:

Terminal window
head /etc/services

and:

Terminal window
tail /etc/services

Example:

Terminal window
grep "ssh" /etc/services

The exact output depends on the system.

Run:

Terminal window
cat /etc/services | grep "ssh"

Conceptually:

Command 1
Output
Pipe
Command 2

A more direct form is often:

Terminal window
grep "ssh" /etc/services

The exercise demonstrates how pipelines work.

Linux identities are fundamental to both administration and security.

Review:

Terminal window
cat /etc/passwd

Do not interpret this file as containing plaintext passwords.

Modern Linux systems normally store password-verifier information separately with restricted access.

A typical entry conceptually contains:

Username
UID
GID
Description
Home Directory
Login Shell

Use:

Terminal window
getent passwd "$(whoami)"

Record:

Username:
UID:
GID:
Home:
Shell:

Run:

Terminal window
groups

Then:

Terminal window
getent group

You do not need to memorize every system group.

Focus on understanding:

User
Group Membership
Access

The following exercises require administrative authorization on your lab VM.

Create a training group:

Terminal window
sudo groupadd labadmins

Verify:

Terminal window
getent group labadmins

Create:

Terminal window
sudo useradd -m labuser

Verify:

Terminal window
getent passwd labuser

Depending on your distribution and lab objectives, password configuration can be handled through your normal approved account-management process.

Terminal window
sudo usermod -aG labadmins labuser

Verify:

Terminal window
id labuser

You should see:

labadmins

among the user’s groups.

Be careful with group modification.

Your objective is:

Add Membership

without accidentally removing required existing memberships.

Create a shared training directory:

Terminal window
sudo mkdir -p /srv/linux-admin-lab

Review:

Terminal window
ls -ld /srv/linux-admin-lab

Assign the training group:

Terminal window
sudo chown root:labadmins /srv/linux-admin-lab

Verify:

Terminal window
ls -ld /srv/linux-admin-lab

Set:

Terminal window
sudo chmod 770 /srv/linux-admin-lab

Review:

Terminal window
ls -ld /srv/linux-admin-lab

Interpret:

Owner:
rwx
Group:
rwx
Others:
---
OWNER
Read Write Execute
GROUP
Read Write Execute
OTHERS
No Access

Step 26 — Understand Numeric Permissions

Section titled “Step 26 — Understand Numeric Permissions”

Remember:

Read = 4
Write = 2
Execute = 1

Therefore:

7 = rwx
6 = rw-
5 = r-x
4 = r--
0 = ---

Why is:

777

usually a poor default for sensitive directories?

Because it may provide unnecessary access to:

Other Users

A better approach is:

Business Requirement
Required Users/Groups
Minimum Permission

Directory permissions have important semantics.

For a directory:

Read

relates to listing directory entries.

Write

relates to creating/removing entries.

Execute

relates to traversing/accessing entries through the directory.

Understanding this is critical when troubleshooting access problems.

Run:

Terminal window
ps

Then:

Terminal window
ps aux

Review fields such as:

USER
PID
CPU
MEMORY
COMMAND

Find your current shell process.

You can inspect your shell PID with:

Terminal window
echo $$

Then:

Terminal window
ps -p $$ -o pid,ppid,user,cmd

Observe:

PID
PPID
User
Command
Parent Process
Child Process
Child Process

Process ancestry is extremely useful during incident investigation.

If available:

Terminal window
top

Observe:

CPU
Memory
Load
Processes

Exit with:

q

Unexpected resource consumption may result from:

Legitimate Workload
Application Failure
Misconfiguration
Runaway Process
Unexpected Software

Evidence must determine which.

Part 10 — Create a Safe Background Process

Section titled “Part 10 — Create a Safe Background Process”

Run:

Terminal window
sleep 300 &

The shell should display a background job.

Run:

Terminal window
jobs

Find it:

Terminal window
ps -ef | grep "[s]leep 300"

Use the job mechanism where appropriate:

Terminal window
kill %1

Then:

Terminal window
jobs

The exact job number may differ if other background jobs exist.

Do not use:

kill -9

as your first response to every process problem.

Prefer:

Understand Process
Request Graceful Termination
Escalate Only if Necessary

Modern Linux distributions commonly use systemd.

Check:

Terminal window
systemctl --version

Then review running services:

Terminal window
systemctl --type=service --state=running

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:

Terminal window
systemctl status <service-name>
Loaded
Active
PID
Recent Logs

Know the distinction between:

Running Now

and:

Configured to Start Automatically

These are different operational states.

Installed
Configured
Started
Enabled
Monitored

For a selected systemd service:

Terminal window
journalctl -u <service-name>

For recent entries:

Terminal window
journalctl -u <service-name> -n 20
Service Problem
Status
Logs
Configuration
Dependencies
Permissions
Network

First determine your distribution.

Debian/Ubuntu-oriented systems commonly use:

APT / dpkg

Red Hat-oriented systems commonly use:

DNF / RPM

On Debian-family systems, an example is:

Terminal window
dpkg -l

On RPM-family systems:

Terminal window
rpm -qa

Do not install or remove packages blindly.

Choose a known installed package and inspect its information using the appropriate package manager.

Your goal is to understand:

Package Name
Version
Architecture
Source

Package management affects:

Vulnerability Management
Patch Management
Software Inventory
Supply-Chain Security

Run:

Terminal window
lsblk

Observe:

Disk
Partition
Size
Mount Point

Then:

Terminal window
df -h

Review filesystem utilization.

Run:

Terminal window
du -sh ~/linux-admin-lab

Understand:

df

versus:

du

Conceptually:

df
→ Filesystem Utilization
du
→ File/Directory Utilization

Run:

Terminal window
df -Th

Record:

Filesystem
Type
Size
Used
Available
Mount Point

Use:

Terminal window
findmnt

Observe the relationship:

Device
Filesystem
Mount Point

Do not practice destructive storage operations against your primary system disk.

Partitioning, formatting, and filesystem creation should be performed only on:

Disposable Lab Storage

Run:

Terminal window
df -i

Why?

Because:

Free Disk Space

does not always mean:

New Files Can Be Created

A filesystem can run out of available inodes.

No Space Left
Check Capacity
+
Check Inodes

Run:

Terminal window
ip addr

Record:

Interface
State
IP Address

Run:

Terminal window
ip route

Identify:

Connected Routes
Default Route
Gateway
Terminal window
hostname

Then, where appropriate:

Terminal window
hostname -f

The fully qualified hostname may depend on local DNS and host configuration.

In your authorized lab network, test an approved reachable destination.

Terminal window
ping -c 4 <approved-destination>

Remember:

Ping Failure

does not automatically prove:

Host Is Down

ICMP may be filtered.

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.

Run:

Terminal window
ss -lnt

For a broader socket view:

Terminal window
ss -lntu

With appropriate privilege, process information may also be available:

Terminal window
sudo ss -lntup

Choose a few listening services and document:

Protocol
Local Address
Port
Process/Service
Expected?

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 Application

Avoid jumping directly to:

Restart Everything

Depending on your distribution, logs may be available through:

systemd journal

and/or files under:

/var/log

Start with:

Terminal window
journalctl -n 50

Review only authorized system information.

Terminal window
journalctl -b

This can help investigate:

Boot Problems
Service Failures
Device Problems
Configuration Errors

Step 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/secure

Do not assume every distribution uses the same file.

Authentication evidence may help investigate:

Successful Logins
Failed Logins
sudo Activity
Account Problems

Run:

Terminal window
who

Then:

Terminal window
w

Observe:

User
Terminal
Login Time
Source
Current Activity

Where available:

Terminal window
last

Use this to understand historical login activity.

Suppose you find:

Successful Login
Unknown Source
Privileged User
Unexpected Time

Do not immediately conclude compromise.

Instead:

Validate Identity
Validate Source
Review Authentication Evidence
Review Activity
Build Timeline

Scheduled tasks are useful for:

Maintenance
Backups
Automation
Reporting

They 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:

Terminal window
crontab -l

If no personal crontab exists, that is acceptable.

Review system scheduling locations appropriate to your distribution, without modifying them.

Which User Runs It?
What Command Executes?
When?
Who Created It?
Is It Required?

Run:

Terminal window
env

Review variables such as:

HOME
USER
SHELL
PATH
Terminal window
echo "$PATH"

Understand:

Command Entered
Shell Searches PATH
Executable Found
Command Runs

PATH configuration matters because executable search order can affect which program is executed.

Collect:

Terminal window
uptime

Then:

Terminal window
free -h

Then:

Terminal window
df -h

Then review processes:

Terminal window
ps aux

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:

Terminal window
cd ~/linux-admin-lab

Create:

Terminal window
touch system-inventory.txt

Collect non-sensitive information into the report.

For example:

Terminal window
echo "Linux Administration Inventory" > system-inventory.txt
echo "Hostname: $(hostname)" >> system-inventory.txt
echo "Kernel: $(uname -r)" >> system-inventory.txt
echo "Current User: $(whoami)" >> system-inventory.txt
echo "Date: $(date)" >> system-inventory.txt

Review:

Terminal window
cat system-inventory.txt

Part 26 — Build a Simple Administration Script

Section titled “Part 26 — Build a Simple Administration Script”

Create:

Terminal window
nano system-check.sh

or 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)"
echo
echo "Uptime:"
uptime
echo
echo "Memory:"
free -h
echo
echo "Filesystem Usage:"
df -h
echo
echo "Network Interfaces:"
ip -brief addr

Save the file.

Terminal window
chmod u+x system-check.sh

Run:

Terminal window
./system-check.sh

You transformed:

Multiple Manual Checks

into:

Repeatable Administration

This is your bridge toward:

Shell Automation
Ansible
RHCE
DevOps

A user reports:

I Cannot Access
the Shared Directory

Use:

USER
GROUP
OWNER
PERMISSIONS
PARENT DIRECTORY
ACL / SECURITY POLICY

Questions:

  1. Which user is affected?
  2. Which groups does the user belong to?
  3. Who owns the directory?
  4. Which group owns it?
  5. What are the permissions?
  6. Does the user have effective access?
  7. Is another security layer involved?

An application team reports:

Service Is Not Running

Use:

SERVICE STATUS
LOGS
CONFIGURATION
DEPENDENCIES
PERMISSIONS
PORT
SECURITY CONTROL

Do not begin by randomly restarting services.

A user reports:

Server Cannot Reach
an Application

Use:

Interface
IP
Route
DNS
Port
Firewall
Application

Document which layer fails.

An application reports:

No Space Left on Device

Investigate:

Filesystem Capacity
Inodes
Large Directories
Unexpected Growth
Mount State

Do not delete files until you understand:

What They Are
Who Owns Them
Why They Exist
Whether Retention Is Required

A server becomes unusually slow.

Review:

CPU
Load
Memory
Swap
Processes
Storage
Network
Logs

Do not assume:

High CPU

is 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 Document

Now perform a basic administrative security review.

Do not change anything yet.

Review:

Users
Groups
Administrative Access
Permissions
Services
Packages
Listening Ports
Logs
Scheduled Tasks

Ask:

Are All Accounts Recognized?
Are Service Accounts Appropriate?
Are Disabled Accounts Still Active?
Are Group Memberships Appropriate?

Ask:

Who Has Administrative Access?
Why?
Is It Required?
Is It Excessive?

Ask:

Which Services Are Running?
Which Are Network Accessible?
Are All Required?

Ask:

What Software Is Installed?
Is It Required?
Is It Supported?
Is It Maintained?

Ask:

Are Logs Available?
Are Authentication Events Recorded?
Are Service Events Recorded?
Can Activity Be Investigated?

Suppose you identify an unnecessary network service.

Document it professionally.

Finding:
Unnecessary Network Service Enabled
Observation:
A network-facing service is running on
the Linux server without a confirmed
business requirement.
Security Concern:
Unnecessary services increase the
system's reachable attack surface.
Recommendation:
Confirm application ownership and
business requirements. If the service
is unnecessary, disable it through the
approved 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 beyond
the users who require the resource.
Security Concern:
Unauthorized users may be able to read,
modify, or delete data.
Recommendation:
Map required access to approved users
and groups and apply least-privilege
filesystem 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 elevated
administrative permissions.
Security Concern:
Excessive administrative access
increases the impact of credential
compromise or administrative error.
Recommendation:
Validate business requirements and
reduce administrative access to the
minimum permissions required.

Part 37 — Create Your Administration Report

Section titled “Part 37 — Create Your Administration Report”

Create a report containing:

Linux Administration Lab Report

Include:

Hostname
Distribution
Version
Kernel
Architecture
Uptime
Current User
Administrative Access
Training User
Training Group
Important Mounts
Filesystem Usage
Inode Usage
Important Running Services
Startup State
Observed Issues
Interfaces
IP Addresses
Default Route
Listening Ports
Journal Available?
Authentication Evidence?
Service Logs?

For each:

Finding
Observation
Risk
Recommendation

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 Secrets

in 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:
labadmins

Then follow your distribution’s approved account-removal process.

For example, on many systems:

Terminal window
sudo userdel -r labuser

Then, after verifying the group is no longer required:

Terminal window
sudo groupdel labadmins

Do not remove real system or application identities.

If:

/srv/linux-admin-lab

was 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 Requirement

before deletion.

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?

When you receive an unfamiliar Linux server, use:

SYSTEM
IDENTITY
FILES
PROCESSES
SERVICES
SOFTWARE
STORAGE
NETWORK
LOGGING
SECURITY

Do not randomly execute commands.

Move systematically through the system.

Linux administration and Linux security are closely connected.

ADMINISTRATION
Understand Expected State
SECURITY
Identify Unexpected State

For 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.

The skills practiced in this lab directly support:

Linux Administrator
System Administrator
Cloud Engineer
DevOps Engineer
SOC Analyst
Security Engineer
Cloud Security Engineer
Platform Engineer

A Linux server is slow. What do you investigate?

Look across:

Load
CPU
Memory
Swap
Processes
Storage
I/O
Network
Logs
Recent Changes

A service does not start. What do you check?

Status
Logs
Configuration
Dependencies
Permissions
Port
Security Controls

A user cannot access a directory. What do you review?

Identity
Groups
Ownership
Permissions
Parent Directories
ACLs
Additional Security Controls

A server has free disk space but cannot create files. Why?

One possible cause is:

Inode Exhaustion

You discover an unknown listening port. What do you do?

Port
Process
User
Service
Business Requirement
Network Exposure

30 Linux Administration Interview Questions

Section titled “30 Linux Administration Interview Questions”
  1. How do you identify the Linux distribution?
  2. How do you identify the running kernel?
  3. What is the difference between UID and GID?
  4. What information does id provide?
  5. What is the purpose of /etc/passwd?
  6. What is the difference between a user and a group?
  7. What do Linux rwx permissions represent?
  8. What does permission 750 mean?
  9. What is the purpose of chown?
  10. What is the difference between > and >>?
  11. What is a Linux process?
  12. What is the difference between PID and PPID?
  13. How would you investigate a high-CPU process?
  14. What is systemd?
  15. What is the difference between starting and enabling a service?
  16. How would you troubleshoot a failed service?
  17. What is a package manager?
  18. Why is package inventory security-relevant?
  19. What does df tell you?
  20. What does du tell you?
  21. What is an inode?
  22. What is a mount point?
  23. What information does ip addr provide?
  24. What does ip route show?
  25. How would you identify listening ports?
  26. Why might ping fail even when a host is available?
  27. Why are logs important?
  28. Why should scheduled tasks be reviewed?
  29. Why should administrators avoid unnecessary root usage?
  30. What troubleshooting methodology do you use for Linux problems?
  • 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
  • Reviewed ownership
  • Modified training ownership
  • Modified training permissions
  • Understood numeric permissions
  • Applied least privilege
  • Reviewed processes
  • Identified PID/PPID
  • Created safe background process
  • Terminated training process safely
  • Reviewed running services
  • Inspected service status
  • Reviewed service logs
  • Understood running vs enabled state
  • Identified package-management family
  • Reviewed installed packages
  • Understood package-security implications
  • Reviewed block devices
  • Reviewed filesystem capacity
  • Reviewed filesystem types
  • Reviewed mounts
  • Reviewed inode utilization
  • 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
  • Reviewed environment variables
  • Reviewed scheduled tasks
  • Built simple system-check script
  • Reviewed accounts
  • Reviewed privileges
  • Reviewed services
  • Reviewed ports
  • Reviewed logs
  • Created security observations
  • Created system inventory
  • Recorded evidence
  • Documented findings
  • Created administration report

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 Review

More importantly, you practiced the professional Linux workflow:

OBSERVE
UNDERSTAND
CONFIGURE
VALIDATE
TROUBLESHOOT
DOCUMENT

This foundation is critical because secure Linux systems cannot be built without first understanding how Linux systems are administered.

➡️ Lab 02 — Linux Hardening

In the next lab, you will take a functioning Linux server and move from:

Linux Administration

to:

Secure Linux Administration

You 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 Validation

Your 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