Linux practice challenges: workplace scenarios
You solve short problems from a real sysadmin’s day, finding the cause and applying a lasting fix each time.
Level 201 · 19 lessons · 15 practice labs
Lessons
Accounts and access
- New hire: create the account, group and limited sudo rights: You give a new employee an account and group membership that can run only the commands their job needs.
- Leaver: lock the account and hand over the files: You lock a departing employee’s account, end their sessions and transfer their files to the team.
- Repair broken web folder permissions: After a bad chmod breaks a website, you fix its folder and file permissions using least privilege.
- SSH key rejected: fix the .ssh permissions: You find in the server log why key login is refused and set the .ssh folder and file permissions correctly.
- Detect unexpected SUID files: You list SUID files on the system, compare them with a known list, and find and remove the unauthorised one.
Log digging
- Extract failed logins from the auth log and count sources: You filter failed login lines, count the addresses with most attempts and prepare a block list.
- Find the source of 5xx errors in a web access log: You group server errors in the access log by hour and URL to find when and where the problem began.
- Find a crashed service’s last error with journalctl: With journalctl you narrow a service’s records to the crash moment and pin down the real error line.
Services and processes
- Recover a stopped service: systemctl and a config error: You find a failing service’s config error, fix and validate it, and make it start automatically at boot.
- Find and safely stop a CPU-hungry process: You find the process slowing the server, verify its owner and origin, and stop it gently before forcing it.
- Port in use: find the process holding it with ss: When a service fails on a busy port, you use ss to find the holding process and spot unexpected listeners.
- Forgotten sessions and orphaned processes: safe cleanup: You list lingering user sessions and orphaned processes, decide what can be closed and clean them up.
Disk and backup
- Disk full: find the growing file with du and find, free space safely: You scan the full disk with du and find, locate the bloated log and free space without breaking the service.
- Space left but no new files: solve inode exhaustion: You notice inode exhaustion with df -i, find the folder producing millions of tiny files and clean it.
- Restore from backup: one file from a tar archive and a checksum: You restore a deleted file from a tar archive with its permissions and confirm with a checksum it is intact.
Scheduled jobs
- Cron job not running: environment, path and permission errors: You fix the environment, path and permission problems of a backup job that works by hand but not in cron.
- Detect and remove a suspicious cron entry: You scan every user and system cron table, find an entry nobody recognises, preserve evidence and remove it.
- Log rotation not working: repair the logrotate config: You run logrotate in debug mode to find the error, fix it and make old logs get cleared on schedule.
- Final task: clear five problems waiting at the start of the morning shift: You prioritise disk, service, permission, cron and log problems, fix each and write a short shift note.
Practice labs
- Set up account, group and limited sudo for a new hire: Create a new hire's account with the right groups and add a sudo rule that only lets them restart the web service.
- Find why an SSH key is rejected: On a login that asks for a password despite a correct key, fix home and .ssh permissions starting from the server log.
- Offboard a leaver and audit unexpected SUID files: Lock a leaver's account, hand over files, remove keys and scheduled jobs, and find and report SUID files not owned by any package.
- Count failed logins by source: Extract failed logins from the auth log and submit the address with the most attempts.
- Find the source of 5xx errors in the access log: Group 5xx responses by path and hour and determine from which endpoint and at what time the errors began.
- Combine three logs into a crashed service's root cause: Match the service journal, kernel log and access log by time to prove the crash came from memory exhaustion.
- Find the process holding a port: Find and cleanly end the old process holding the port that stops a service from starting.
- Bring back a service stopped by a config error: Find the bad line from the journal, pass the config test and get the service running and enabled at boot.
- Safely clean up forgotten sessions and orphan processes: Find sessions open for days and orphan processes, end them while sparing those doing work, and cleanly stop the CPU-hungry process.
- Find the growing file filling the disk: Find the fastest-growing file on a full partition and free space without breaking the service.
- Solve no new files despite free space: Confirm inode exhaustion, find the directory producing millions of tiny files and clean it safely.
- Restore one file from backup and verify by checksum: Find the intact version of a damaged file among three archives using the checksum list, restore only it and keep its permissions.
- Find why a cron job does not run: From the cron log find and fix the execute permission and path error in a job that never runs.
- Repair log rotation that does not work: Find the permission and syntax errors in the rotation config from debug output and verify by forcing a rotation.
- Clear five problems waiting at the morning shift: Prioritise and solve five problems — a suspicious cron entry, a full disk, a stopped service, broken permissions and a failing backup — and record them.
About this course
You solve short problems from a real sysadmin’s day, finding the cause and applying a lasting fix each time.
What you will learn
- Accounts and access
- Log digging
- Services and processes
- Disk and backup
- Scheduled jobs
Prerequisites
Finishing the level 101 courses of the same path, or knowing those topics, is enough.
Lab environment
Lessons run in your own Kali Linux terminal that opens in the browser. Nothing to install; the lab starts clean in every lesson.
Frequently asked questions
- Is this course right for my level?
- The course is at level 201; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.