loris

🐧

Start Here

11 / 12 2 / 41


Using the Terminal

Time of First Successful Submission: 2026-04-29 03:12:39

Using the VSCode Workspace

Time of First Successful Submission: 2026-04-29 03:15:07

Using the GUI Desktop

Time of First Successful Submission: 2026-04-29 03:16:31

Pasting into the Desktop

Time of First Successful Submission: 2026-04-29 03:18:11

Restarting Challenges

Time of First Successful Submission: 2026-04-29 03:21:10

Challenge Programs

Time of First Successful Submission: 2026-04-29 03:25:38

The Flag File

Time of First Successful Submission: 2026-04-29 03:29:00

Using Privileged Mode

Time of First Successful Submission: 2026-04-29 03:36:43

Persistent Home Directories - One

Time of First Successful Submission: 2026-04-29 03:46:04

Persistent Home Directories - Two

Time of First Successful Submission: 2026-04-29 03:46:53


Linux Luminarium

128 / 128 1 / 31


Intro to Commands

Time of First Successful Submission: 2026-04-30 15:47:35

Intro to Arguments

Time of First Successful Submission: 2026-04-30 15:49:56

Command History

Time of First Successful Submission: 2026-04-30 15:50:46

The Root

Time of First Successful Submission: 2026-04-30 15:53:29

Program and absolute paths

Time of First Successful Submission: 2026-04-30 15:55:38

Position thy self

Time of First Successful Submission: 2026-04-30 16:00:57

Position elsewhere

Time of First Successful Submission: 2026-04-30 16:03:18

implicit relative paths, from /

Time of First Successful Submission: 2026-05-01 06:36:58

explicit relative paths, from /

Time of First Successful Submission: 2026-05-01 07:22:30

implicit relative path

Time of First Successful Submission: 2026-05-01 07:23:53

home sweet home

Time of First Successful Submission: 2026-05-01 07:26:28

cat: not the pet, but the command!

Time of First Successful Submission: 2026-05-01 07:27:59

catting absolute paths

Time of First Successful Submission: 2026-05-01 07:30:18

more catting practice

Time of First Successful Submission: 2026-05-01 07:31:00

grepping for a needle in a haystack

Time of First Successful Submission: 2026-05-01 07:33:16

comparing files

Time of First Successful Submission: 2026-05-01 07:41:04

listing files

Time of First Successful Submission: 2026-05-01 07:41:56

touching files

Time of First Successful Submission: 2026-05-01 07:42:56

removing files

Time of First Successful Submission: 2026-05-01 09:19:47

moving files

Time of First Successful Submission: 2026-05-01 09:21:54

copying files

Time of First Successful Submission: 2026-05-01 09:22:35

hidden files

Time of First Successful Submission: 2026-05-01 09:23:33

An Epic Filesystem Quest

Time of First Successful Submission: 2026-05-01 09:34:56

making directories

Time of First Successful Submission: 2026-05-01 09:35:53

finding files

Time of First Successful Submission: 2026-05-01 09:42:33

linking files

Time of First Successful Submission: 2026-05-01 09:51:39

Learning From Documentation

Time of First Successful Submission: 2026-05-01 09:55:12

Learning Complex Usage

Time of First Successful Submission: 2026-05-01 09:57:12

Reading Manuals

Time of First Successful Submission: 2026-05-01 09:58:59

Searching Manuals

Time of First Successful Submission: 2026-05-01 10:00:47

Searching For Manuals

Time of First Successful Submission: 2026-05-01 16:43:42

Helpful Programs

Time of First Successful Submission: 2026-05-01 16:45:02

Help for Builtins

Time of First Successful Submission: 2026-05-01 16:46:49

Matching with *

Time of First Successful Submission: 2026-05-01 16:56:15

Matching with ?

Time of First Successful Submission: 2026-05-01 16:57:26

Matching with []

Time of First Successful Submission: 2026-05-01 16:59:19

Matching paths with []

Time of First Successful Submission: 2026-05-01 17:00:48

Multiple globs

Time of First Successful Submission: 2026-05-01 17:02:39

Mixing globs

Time of First Successful Submission: 2026-05-01 17:03:59

Exclusionary globbing

Time of First Successful Submission: 2026-05-01 17:05:39

Tab completion

Time of First Successful Submission: 2026-05-01 17:06:42

Multiple options for tab completion

Time of First Successful Submission: 2026-05-01 17:08:18

Tab completion on commands

Time of First Successful Submission: 2026-05-01 17:08:58

Redirecting output

Time of First Successful Submission: 2026-05-02 04:41:28

Redirecting more output

Time of First Successful Submission: 2026-05-02 04:45:20

Appending output

Time of First Successful Submission: 2026-05-02 04:47:33

Redirecting errors

Time of First Successful Submission: 2026-05-02 04:50:08

Redirecting input

Time of First Successful Submission: 2026-05-02 04:51:55

Grepping stored results

Time of First Successful Submission: 2026-05-02 04:53:26

Grepping live output

Time of First Successful Submission: 2026-05-02 04:54:27

Grepping errors

Time of First Successful Submission: 2026-05-02 04:56:19

Filtering with grep -v

Time of First Successful Submission: 2026-05-02 04:57:06

Filtering with sed

Time of First Successful Submission: 2026-05-02 04:58:43

Duplicating piped data with tee

Time of First Successful Submission: 2026-05-02 05:02:33

Process substitution for input

Time of First Successful Submission: 2026-05-02 05:14:39

Writing to multiple programs

Time of First Successful Submission: 2026-05-02 05:23:49

Split-piping stderr and stdout

Time of First Successful Submission: 2026-05-02 05:44:45

Named pipes

Time of First Successful Submission: 2026-05-02 05:58:13

Printing Variables

Time of First Successful Submission: 2026-05-02 06:01:55

Setting Variables

Time of First Successful Submission: 2026-05-02 10:45:36

Multi-word Variables

Time of First Successful Submission: 2026-05-02 10:46:19

Exporting Variables

Time of First Successful Submission: 2026-05-02 10:49:31

Printing Exported Variables

Time of First Successful Submission: 2026-05-02 10:49:58

Storing Command Output

Time of First Successful Submission: 2026-05-02 10:54:53

Reading Input

Time of First Successful Submission: 2026-05-02 11:06:17

Reading Files

Time of First Successful Submission: 2026-05-02 11:07:58

Translating characters

Time of First Successful Submission: 2026-05-02 11:12:13

Deleting characters

Time of First Successful Submission: 2026-05-02 11:13:16

Deleting newlines

Time of First Successful Submission: 2026-05-02 11:14:39

Extracting the first lines with head

Time of First Successful Submission: 2026-05-02 11:16:02

Extracting specific sections of text

Time of First Successful Submission: 2026-05-02 11:19:16

Sorting data

Time of First Successful Submission: 2026-05-02 11:20:38

Listing Processes

Time of First Successful Submission: 2026-05-02 14:46:44

Killing Processes

Time of First Successful Submission: 2026-05-02 14:53:43

Interrupting Processes

Time of First Successful Submission: 2026-05-02 14:55:47

Killing Misbehaving Processes

Time of First Successful Submission: 2026-05-02 14:59:29

Suspending Processes

Time of First Successful Submission: 2026-05-02 15:01:47

Resuming Processes

Time of First Successful Submission: 2026-05-02 15:02:46

Backgrounding Processes

Time of First Successful Submission: 2026-05-02 15:05:26

Foregrounding Processes

Time of First Successful Submission: 2026-05-02 15:07:18

Starting Backgrounded Processes

Time of First Successful Submission: 2026-05-02 15:08:06

Process Exit Codes

Time of First Successful Submission: 2026-05-02 15:09:54

Becoming root with su

Time of First Successful Submission: 2026-05-02 15:20:16

Other users with su

Time of First Successful Submission: 2026-05-02 15:21:38

Cracking passwords

Time of First Successful Submission: 2026-05-02 15:25:33

Using sudo

Time of First Successful Submission: 2026-05-02 15:28:08

Changing File Ownership

Time of First Successful Submission: 2026-05-02 16:09:20

Groups and Files

Time of First Successful Submission: 2026-05-02 16:14:52

Fun With Groups Names

Time of First Successful Submission: 2026-05-02 16:20:47

Changing Permissions

Time of First Successful Submission: 2026-05-02 16:26:29

Executable Files

Time of First Successful Submission: 2026-05-02 16:28:36

Permission Tweaking Practice

Time of First Successful Submission: 2026-05-02 16:33:44

Permissions Setting Practice

Time of First Successful Submission: 2026-05-02 16:40:19

The SUID Bit

Time of First Successful Submission: 2026-05-02 16:42:12

Chaining with Semicolons

Time of First Successful Submission: 2026-05-02 16:43:50

Building on Success

Time of First Successful Submission: 2026-05-03 06:24:16

Handling Failure

Time of First Successful Submission: 2026-05-03 06:25:17

Your First Shell Script

Time of First Successful Submission: 2026-05-03 06:30:16

Redirecting Script Output

Time of First Successful Submission: 2026-05-03 06:47:16

Executable Shell Scripts

Time of First Successful Submission: 2026-05-03 06:54:41

Understanding Shebangs

Time of First Successful Submission: 2026-05-03 07:00:41

Scripting with Arguments

Time of First Successful Submission: 2026-05-03 07:23:49

Scripting with Conditionals

Time of First Successful Submission: 2026-05-03 08:27:55

Scripting with Default Cases

Time of First Successful Submission: 2026-05-03 08:29:59

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-05-03 08:35:53

Reading Shell Scripts

Time of First Successful Submission: 2026-05-03 08:41:20

Launching Screen

Time of First Successful Submission: 2026-05-03 08:43:12

Detaching and Attaching

Time of First Successful Submission: 2026-05-03 09:41:35

Finding Sessions

Time of First Successful Submission: 2026-05-03 10:21:25

Switching Windows

Time of First Successful Submission: 2026-05-03 10:23:25

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-05-03 10:25:30

Switching Windows (tmux)

Time of First Successful Submission: 2026-05-03 10:29:15

The PATH Variable

Time of First Successful Submission: 2026-05-03 10:31:46

Setting PATH

Time of First Successful Submission: 2026-05-03 10:36:01

Finding Commands

Time of First Successful Submission: 2026-05-03 10:37:42

Adding Commands

Time of First Successful Submission: 2026-05-03 10:42:39

Hijacking Commands

Time of First Successful Submission: 2026-05-03 10:47:24

Bashrc Backdoor

Time of First Successful Submission: 2026-05-03 10:53:00

Sniffing Input

Time of First Successful Submission: 2026-05-03 11:52:19

Overshared Directories

Time of First Successful Submission: 2026-05-03 14:49:51

Tricky Linking

Time of First Successful Submission: 2026-05-03 15:06:12

Sniffing Process Arguments

Time of First Successful Submission: 2026-05-03 15:17:01

Snooping on Configurations

Time of First Successful Submission: 2026-05-03 15:21:21

The Fork Bomb

Time of First Successful Submission: 2026-05-03 15:28:32

Disk-Space Doomsday

Time of First Successful Submission: 2026-05-03 15:42:03

rm -rf /

Time of First Successful Submission: 2026-05-03 15:44:09

Life after rm -rf /

Time of First Successful Submission: 2026-05-03 15:50:08

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-05-03 15:54:47


Computing 101

56 / 94 1 / 10


Your First Register

Time of First Successful Submission: 2026-05-04 14:46:00

Your First Syscall

Time of First Successful Submission: 2026-05-04 14:48:55

Exit Codes

Time of First Successful Submission: 2026-05-04 14:51:03

Building Executables

Time of First Successful Submission: 2026-05-04 14:59:36

Moving Between Registers

Time of First Successful Submission: 2026-05-04 15:02:10

Loading From Memory

Time of First Successful Submission: 2026-05-04 15:11:50

More Loading Practice

Time of First Successful Submission: 2026-05-04 15:12:47

Dereferencing Pointers

Time of First Successful Submission: 2026-05-04 15:15:19

Dereferencing Yourself

Time of First Successful Submission: 2026-05-04 15:54:58

Dereferencing with Offsets

Time of First Successful Submission: 2026-05-04 15:56:14

Stored Addresses

Time of First Successful Submission: 2026-05-04 15:59:14

Double Dereference

Time of First Successful Submission: 2026-05-04 16:01:09

The Stack

Time of First Successful Submission: 2026-05-04 16:03:36

Stack Offsets

Time of First Successful Submission: 2026-05-05 15:35:24

Program Arguments on the Stack

Time of First Successful Submission: 2026-05-05 15:37:37

Popping From the Stack

Time of First Successful Submission: 2026-05-05 15:44:01

Disassembling Programs

Time of First Successful Submission: 2026-05-05 15:56:38

Tracing Syscalls

Time of First Successful Submission: 2026-05-05 16:00:18

Starting GDB

Time of First Successful Submission: 2026-05-05 16:01:50

Quitting GDB

Time of First Successful Submission: 2026-05-05 16:02:27

Starting Programs in GDB

Time of First Successful Submission: 2026-05-05 16:06:14

Disassembling in GDB

Time of First Successful Submission: 2026-05-05 16:07:02

Stepping Through Instructions

Time of First Successful Submission: 2026-05-05 16:08:41

Reading Register Values

Time of First Successful Submission: 2026-05-05 16:09:44

Popping Stack Values

Time of First Successful Submission: 2026-05-05 16:11:08

Examining Memory

Time of First Successful Submission: 2026-05-05 16:12:42

Examining Stack Pointers

Time of First Successful Submission: 2026-05-05 16:15:52

Cooperative Debugging

Time of First Successful Submission: 2026-05-05 23:31:04

Writing Output

Time of First Successful Submission: 2026-05-06 16:16:15

Chaining Syscalls

Time of First Successful Submission: 2026-05-09 07:12:53

Writing Strings

Time of First Successful Submission: 2026-05-09 07:24:32

Reading Data

Time of First Successful Submission: 2026-05-09 09:35:21

Opening Files

Time of First Successful Submission: 2026-05-09 09:44:55

Hardcoding the Filename

Time of First Successful Submission: 2026-05-09 10:20:04

Comparing Values

Time of First Successful Submission: 2026-05-09 15:32:57

Comparing Characters

Time of First Successful Submission: 2026-05-09 15:39:37

Conditional Control Flow

Time of First Successful Submission: 2026-05-09 15:50:16

Comparing Strings

Time of First Successful Submission: 2026-05-09 16:04:10

Reverse the Password

Time of First Successful Submission: 2026-05-09 16:19:04

Conditionals Without Conditionals

Time of First Successful Submission: 2026-05-09 17:07:16

Looping

Time of First Successful Submission: 2026-05-09 17:21:28

Reverse the Calculation

Time of First Successful Submission: 2026-05-09 17:30:18

Reverse the Reverse

Time of First Successful Submission: 2026-05-09 17:33:39

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-05-10 02:18:21

Loops on Data

Time of First Successful Submission: 2026-05-10 02:27:41

set-register

Time of First Successful Submission: 2026-05-10 02:48:34

set-multiple-registers

Time of First Successful Submission: 2026-05-10 02:53:24

add-to-register

Time of First Successful Submission: 2026-05-10 02:55:46

linear-equation-registers

Time of First Successful Submission: 2026-05-10 03:05:24

integer-division

Time of First Successful Submission: 2026-05-10 03:11:28

modulo-operation

Time of First Successful Submission: 2026-05-10 03:14:09

set-upper-byte

Time of First Successful Submission: 2026-05-10 03:16:14

efficient-modulo

Time of First Successful Submission: 2026-05-10 04:17:07

byte-extraction

Time of First Successful Submission: 2026-05-16 05:34:06

bitwise-and

Time of First Successful Submission: 2026-05-16 05:45:18

check-even

Time of First Successful Submission: 2026-05-16 06:15:51