Phase 0: Baseline Assessment

Phase 0: Baseline Skills Assessment

Target: Week 1 (Apr 21-27, 2026)

Purpose

Establish baseline competency level in each domain. Identify exact gaps. Set priority order for prep.

Assessment Protocol

For each domain, attempt the challenges below using only man pages as reference. Time yourself. Record what you had to look up vs what you knew.

Domain 1: Filesystem & Inodes

Challenge 1.1 — Can you explain what an inode IS?
Without looking: write down what data an inode stores.
Then verify: man 7 inode (or man 2 stat → struct stat)
Challenge 1.2 — Hard vs soft links
# Create a file, hard link, and soft link
echo "test" > /tmp/arena-test
ln /tmp/arena-test /tmp/arena-hard
ln -s /tmp/arena-test /tmp/arena-soft

# Without running stat: predict the inode numbers and link counts
# Then verify:
stat -c 'inode=%i links=%h type=%F' /tmp/arena-test /tmp/arena-hard /tmp/arena-soft

# Delete the original. What happens to each link? Predict, then test.
rm /tmp/arena-test
cat /tmp/arena-hard    # ?
cat /tmp/arena-soft    # ?
Challenge 1.3 — Disk anomaly
# When does df show more used space than du?
# Hint: man lsof → +L1
# Answer: _______________________________
Challenge 1.4 — /proc as filesystem
# What filesystem type is /proc? How do you find out?
# man findmnt, man proc
findmnt /proc

# Read your own process info
cat /proc/self/status | head -20
ls -la /proc/self/fd

Domain 2: Process & System Calls

Challenge 2.1 — Process tree
# Draw the parent chain from your shell to PID 1. Predict, then verify:
pstree -sp $$
Challenge 2.2 — File descriptors
# How many FDs does your current shell have open?
ls /proc/$$/fd | wc -l

# What are FD 0, 1, 2? Without looking up:
# 0 = _____, 1 = _____, 2 = _____
# Verify: man stdout
Challenge 2.3 — strace a command
# Trace the system calls of a simple command. Identify open(), read(), write():
strace -e trace=open,read,write cat /etc/hostname 2>&1 | head -20

# man strace → -e trace=
Challenge 2.4 — Process holding a deleted file
# Create a file, open it with tail -f, delete it. Find it:
echo "arena" > /tmp/arena-deleted
tail -f /tmp/arena-deleted &
TAIL_PID=$!
rm /tmp/arena-deleted

# Find the deleted-but-open file:
ls -la /proc/$TAIL_PID/fd/ | grep deleted

# Recover it:
cat /proc/$TAIL_PID/fd/3

kill $TAIL_PID

Domain 3: Networking

Challenge 3.1 — Socket state
# List all listening TCP sockets with process names. No googling — man ss:
ss -tlnp

# What does each flag mean? Write from memory:
# -t = _____, -l = _____, -n = _____, -p = _____
Challenge 3.2 — Routing table
# Show the routing table. Identify default gateway.
ip route show

# What is the difference between 'ip route' and 'route'?
# man ip-route
Challenge 3.3 — Interface configuration
# Show all interfaces with IPs, state, and MAC:
ip -br addr
ip -br link

# What does -br mean? man ip → OUTPUT FORMAT

Domain 4: Security

Challenge 4.1 — AppArmor status
# Is AppArmor active? What profiles are enforced?
aa-status 2>/dev/null || cat /sys/kernel/security/apparmor/profiles

# man apparmor → DESCRIPTION
Challenge 4.2 — SELinux context
# Show SELinux context of a file (if available):
ls -Z /etc/passwd

# What are the 4 fields? user:role:type:level
# man selinux
Challenge 4.3 — Firewall rules
# List current nftables rules:
nft list ruleset

# If empty, list iptables:
iptables -L -n -v

# man nft → LIST

Domain 5: Automation

Challenge 5.1 — Strict mode script
# Write a script from memory that:
# 1. Uses set -euo pipefail
# 2. Has a cleanup trap
# 3. Takes one argument (a directory path)
# 4. Counts .adoc files in that directory recursively
# 5. Outputs the count
# Time limit: 5 minutes
Challenge 5.2 — Python stdlib only
# Without pip, write a Python script that:
# 1. Lists all files in /etc/ matching *.conf
# 2. For each, prints filename and line count
# 3. Uses only os, pathlib, sys
# Time limit: 5 minutes
# man python3 → or: python3 -c "help('pathlib')"

Domain 6: Network Architecture

Challenge 6.1 — Subnet from memory
# Given 10.50.0.0/16, create 4 subnets for:
# - Management (50 hosts)
# - Servers (200 hosts)
# - Workstations (1000 hosts)
# - IoT (2000 hosts)
# Write the CIDR notation for each.
# Time limit: 3 minutes

Scoring Your Assessment

Domain Score (0-5) Notes

1. Filesystem/Inodes

_

2. Process/Syscalls

_

3. Networking

_

4. Security

_

5. Automation

_

6. Network Architecture

_

0 = couldn’t attempt, 1 = needed man for everything, 2 = knew concept but not commands, 3 = completed with some lookups, 4 = completed with minor hesitation, 5 = instant, no reference needed

Man Page Navigation Drill

Before closing this assessment, verify you can navigate man:
# Section numbers — memorize these:
# 1 = user commands      man 1 find
# 2 = system calls       man 2 open
# 3 = library functions   man 3 printf
# 5 = file formats        man 5 passwd
# 7 = concepts           man 7 inode
# 8 = admin commands      man 8 ip

# Search within man:
# /pattern    → forward search
# ?pattern    → backward search
# n           → next match
# N           → previous match
# g           → go to top
# G           → go to bottom
# q           → quit

# Find which section a topic is in:
man -k inode
man -k socket
man -k strace

# man -k = apropos — searches man page descriptions
# man apropos