The Sysadmin's Labyrinth - Terminal Challenge Game
Why “The Sysadmin’s Labyrinth”?
The name “The Sysadmin’s Labyrinth” reflects the challenge of navigating complex systems like a sysadmin. The game is like a labyrinth: full of puzzles and hidden paths that require logic, problem-solving, and terminal skills to advance. Each level pushes the player to explore, experiment, and find the right solutions, just as a sysadmin solves problems in a real IT environment.
Overview
This terminal-based game is designed to introduce players to core terminal commands and basic system administration concepts, while also stimulating algorithmic thinking and problem-solving skills.
By playing the game, you will:
- Practice basic and essential terminal commands.
- Explore coding algorithms and logical strategies in a fun, interactive way.
- Train your mind by testing multiple approaches and solutions to advance in the game.
How to Win
Advance through each level by solving puzzles and experimenting with different strategies. Collect clues and fragments to deduce the final passphrase. Enter it correctly to unlock the secret and reach the ultimate level!
Commands and Instructions
Each level comes with its own ***_readme.txt file containing the instructions for that stage. It is essential that you read and understand these instructions carefully, as they guide you through the challenges.
In addition, hint files may be generated as you progress. Whenever such a file is created, you will be notified. It is crucial to follow the guidance in these hint files to successfully advance through the game and solve the puzzles.
Basic Commands to Know
- Run a Bash script:
./<script_name.sh>– Bash scripts usually have a.shextension. - List all files:
ls - Get help for a command:
man - Navigate directories:
cd <directory_name>to enter a directorycd ..to go up one directory
- View the contents of a file:
cat <file_name>
Using the man Command
If you ever encounter a command you don’t know or need help with its options, you can use the man command.
For example:
man ls
Pipelines
A pipeline in the terminal is a way to connect the output of one command directly to the input of another using the | symbol. This allows you to combine multiple commands into a sequence, so the data flows from one command to the next.
For example:
cat file.txt | grep "hello"
Encoding and Decoding Tools
Base64
Base64 is used to encode or decode data in a textual format. It is commonly used to safely transmit binary data over text-based systems.
- Encode a string:
echo "hello" | base64
- Decodong a string:
echo "hello" | base64 --decode
ROT13
ROT13 is a simple letter substitution cipher that replaces each letter with the letter 13 positions after it in the alphabet. It is often used to obscure text.
- Encode/decode using ROT13:
echo "hello" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
xxd
xxd is used to create a hex dump of a file or convert hex back to binary. It is useful for inspecting binary files or converting data between formats.
xxd may not be installed by default on some systems. On Debian/Ubuntu, you can install it with:
sudo apt install xxd
- This command takes a plain hex dump from
file.hex, converts it back into the original data, and writes it intooutput.txt
xxd -r -p file.hex > output.txt
How to Play
- Open a terminal.
- Navigate to the folder where you want to download the game:
cd /path/to/your/folder - Clone the repository:
git clone https://github.com/mohamadyoussefio/sysadmin-labyrinth.git - Go the game directory
cd sysadmin-labyrinth - Make the launcher executable:
chmod +x start.sh - Run the launcher:
./intro.sh