Runs entirely in your browser — no login, no backend

Linux Permission Lab

An interactive playground for understanding Linux file permissions — flip real permission bits, watch chmod update live, break into a fake filesystem, and prove it in hands-on challenges.

21Learn topics
11Labs
88Challenges
113Quiz questions

Created with 0x0MAr

Scroll
What's inside

A full curriculum, not just a calculator

Permission Simulator

Toggle owner, group and others like LED switches and watch symbolic, octal, binary and the chmod command update instantly.

Fake Filesystem

59 realistic files plus 2 symlinks across /etc, /var, /opt, /usr, /tmp, /home and /root — click through real-world permission mistakes.

Terminal Simulator

20+ simulated commands — ls, chmod, chown, find, grep, tree, stat and more — over a safe, fake shell.

21 Learning Cards

Every core topic — chmod, chown, umask, ACLs, special bits and more — with diagrams, examples, and warnings.

11 Interactive Labs

Guided, multi-step walkthroughs — from securing an SSH key to a full capstone permission audit.

88 Challenges

Twenty each across Beginner, Intermediate, Advanced and Expert — earn XP and level up as you go.

113-Question Quiz

Multiple-choice rounds across every topic, with instant explanations and lifetime accuracy tracking.

Security Analyzer

Every permission state is graded Safe, Warning or Critical with a plain-language explanation of why.

XP, Levels & Achievements

12 unlockable achievements, level progression, and a printable certificate once you clear the curriculum.

How it works

Three steps, in order

01

Learn

Work through 21 topic cards — diagrams, examples, tips and warnings for every core concept.

02

Practice

Apply it in 11 guided Labs and 88 tiered Challenges against a realistic fake filesystem.

03

Prove it

Clear the 113-question Quiz, unlock every achievement, and print a certificate once it's done.

Module 01 · 02 · 05 · 06

Permission Simulator

Pick a file from the fake filesystem, or build permissions from scratch. Every toggle updates the live output and the security analysis below.

Fake filesystem
Permission editor
Live output
Symbolic
rwxr-xr-x
Octal
755
Binary
111 101 101
$ chmod 755 file.txt
Security analysis
Safe

    Special bits explained
    Module 04

    Permission Calculator

    Type an octal mode or a symbolic string — both directions convert automatically.

    Quick presets
    Result
    Octal
    755
    Symbolic
    rwxr-xr-x
    Binary
    111 101 101
    Module 03

    Terminal Simulator

    A simulated shell over the same fake filesystem. Try ls -la, tree, find shadow, stat backup.sql, chmod 600 backup.sql, or getfacl /opt/app/config/app.yml. Type help for the full command list.

    learner@permission-lab — simulated shell
    Module 09 · New

    Learn

    21 reference topics covering the full permission model — each with a diagram, an example, command references, tips and warnings.

    Module 10 · New

    Interactive Labs

    Eleven guided, multi-step walkthroughs — each mixes short explanations with graded checkpoints, from a first SSH key fix to a full capstone audit.

    Module 07

    Challenges

    88 labs across four tiers — Beginner, Intermediate, Advanced and Expert. Type the octal mode that solves each scenario and earn XP.

    Module 08 · New

    Quiz

    113 multiple-choice questions across every topic. Rounds are 10 questions — filter by topic or mix them all.

    Module 11

    Cheat Sheet

    The permission modes you'll actually use, in one reference table.

    OctalSymbolicWhen to use it

    Reading the digits

    4
    read (r)
    2
    write (w)
    1
    execute (x)
    4+2+1=7
    read + write + execute

    Binary reference

    000
    0 — no access
    100
    4 — read only
    010
    2 — write only
    001
    1 — execute only
    110
    6 — read + write
    101
    5 — read + execute
    011
    3 — write + execute
    111
    7 — read + write + execute

    Special bits

    4000
    SUID — run as file owner
    2000
    SGID — run as file group / inherit dir group
    1000
    Sticky — only owner can delete, on directories

    Common Linux commands

    CommandWhat it does
    chmod 755 fileSet a file's permission mode.
    chmod u+x fileAdd execute for the owner only, symbolically.
    chown user:group fileChange owner and group in one command.
    chgrp group fileChange only the owning group.
    umask 022Set the default permission mask for newly created files.
    ls -lList files with permissions, owner, group, size and date.
    ls -laSame, including hidden dotfiles.
    stat fileShow detailed permission and metadata for one file.
    find / -perm -4000List every SUID binary on the system.
    find / -perm -o+w -type fList every world-writable regular file.
    getfacl fileShow a file's Access Control List entries.
    setfacl -m u:name:rx fileGrant an individual user extra ACL access.

    Permission troubleshooting

    "Permission denied" running a script with ./

    The file is missing execute permission. Run chmod +x script.sh, or check with ls -l first.

    "Permission denied" entering a directory with cd

    The directory is missing execute permission for you. Read alone isn't enough to enter a directory — you need execute too.

    Can't create a file inside a directory you can enter

    You have execute but not write on the directory. Write permission on the directory itself (not the files inside it) controls whether you can create or delete entries.

    SSH refuses to use a key file

    The key is more permissive than 600. Run chmod 600 ~/.ssh/id_ed25519 and confirm ~/.ssh itself is 700.

    Files keep landing in the wrong group in a shared directory

    Set the SGID bit on the directory (chmod g+s dir) so new files automatically inherit its group.

    Best practices

    • Never use 777 on anything you didn't specifically design to be world-writable.
    • Private keys and credentials should be 600 (or 400 for read-only secrets).
    • Directories need the execute bit to be entered — 644 on a directory locks everyone out of it.
    • Prefer group permissions over world permissions when sharing access with a team.
    • Audit SUID binaries regularly — they're one of the highest-value privilege-escalation targets.
    • Pair any world-writable directory with the sticky bit, the same way /tmp does.
    • Set a strict umask (like 077) in your shell profile if you default toward privacy.
    Module 12 · New

    Progress

    Your XP, level, and stats across Challenges, Labs and Quiz — plus achievements and a certificate once you clear the curriculum.

    Achievements
    About

    What this is, and isn't

    Linux Permission Lab is a browser-based teaching tool for the Linux permission model — the owner/group/others triad, octal and symbolic notation, ownership, ACLs, and the SUID/SGID/sticky special bits.

    It includes a permission simulator, a fake filesystem, a simulated terminal, 21 learning topics, 11 guided labs, 88 challenges, and a 113-question quiz. Everything is simulated — nothing here touches a real file, shell, or system.

    This project focuses on defensive understanding of permissions and does not include or endorse any offensive or exploitation tooling.

    Educational mission

    Most people learn chmod by copy-pasting a number they half-understand. This project exists to close that gap — to make the permission model something you can see change in real time, break safely, and rebuild from first principles, whether that's flipping a single bit in the Simulator or working through the Expert-tier capstone audit.

    Open-source philosophy

    The whole project is MIT-licensed and dependency-free by design — no build step, no bundler, no framework lock-in. Anyone should be able to read every line of source, fork it, and deploy their own copy to GitHub Pages in minutes.

    Roadmap
    • Symlink and hard-link permission scenarios in the Filesystem module
    • Exportable/shareable JSON progress and certificate verification
    • A guided "path" mode that sequences Learn → Labs → Challenges → Quiz per topic
    • Full Arabic translation of the remaining cheat-sheet prose and terminal help text
    About the author

    Linux Permission Lab is created and maintained by 0x0MAr.