What are Linux file permissions?

Linux file permissions control who can read, write, or execute a file or directory. Every file in Linux has three permission groups: owner (the user who created it), group (users sharing a common group), and others (everyone else). Each group can be granted three types of access: read (r), write (w), and execute (x).

Permissions can be expressed in two notations. Symbolic notation uses letters like rwxr-xr-x, where each character represents a specific permission for a specific group. Octal (numeric) notation uses a three or four-digit number like 755, where each digit is the sum of permission values: read = 4, write = 2, execute = 1.

An optional leading digit in octal notation represents special bits: setuid (4), setgid (2), and sticky bit (1). Setuid allows a program to run with the file owner's privileges, setgid makes new files inherit the group of the parent directory, and sticky bit prevents users from deleting files they don't own in shared directories.

Tool description

This tool lets you build and decode Linux file permissions interactively. Toggle checkboxes for owner, group, and others to set read, write, and execute flags, and instantly see the result in both octal and symbolic notation. You can also type an octal value like 755 or a symbolic string like rwxr-xr-x directly, and the checkboxes and visual output update automatically. A color-coded visual display makes it easy to understand which permissions are active at a glance, and a ready-to-use chmod command is generated for you.

Examples

Octal Symbolic Meaning
755 -rwxr-xr-x Owner: full access. Group and others: read and execute.
644 -rw-r--r-- Owner: read and write. Group and others: read only.
700 -rwx------ Owner: full access. No access for group or others.
777 -rwxrwxrwx Full access for everyone.
1755 -rwxr-xr-t Same as 755 with sticky bit set.
4755 -rwsr-xr-x Same as 755 with setuid bit set.

Features

  • Toggle individual read, write, and execute permissions per group with checkboxes
  • Enter octal (e.g. 755) or symbolic (e.g. rwxr-xr-x) notation directly and see instant conversion
  • Color-coded visual blocks for quick recognition of active permissions
  • Support for special permission bits: setuid, setgid, and sticky bit
  • Auto-generated chmod command ready to copy and use in a terminal

Use cases

  • Setting up a web server: Quickly determine the correct permission set for files served by Apache or Nginx, such as 644 for static files and 755 for executable scripts.
  • Debugging access denied errors: Paste the permission string from ls -l output to visually understand which group is missing access.
  • Learning Linux permissions: Interactively explore how toggling individual flags changes the octal and symbolic representations.

How it works

Each permission type has a numeric weight: read = 4, write = 2, execute = 1. The octal digit for a group is the sum of the enabled permission weights. For example, read + execute = 4 + 1 = 5. The full octal notation concatenates the digits for owner, group, and others — so rwxr-xr-x becomes 755.

Special bits add an optional leading digit calculated the same way: setuid = 4, setgid = 2, sticky = 1. A value of 1755 means sticky bit (1) plus owner=7, group=5, others=5.

Options explained

  • Owner / Group / Others checkboxes: Toggle read (r), write (w), and execute (x) for each permission group independently.
  • Setuid: When set on an executable, it runs with the file owner's privileges instead of the invoking user's.
  • Setgid: On a directory, new files inherit the directory's group. On an executable, it runs with the file group's privileges.
  • Sticky bit: On a directory, only the file owner can delete or rename files inside it, even if others have write permission.
  • Octal input: Type a 3-digit or 4-digit octal number to set all permissions at once.
  • Symbolic input: Type a 9 or 10 character symbolic string (with optional file type prefix) to set permissions.

FAQ

What does chmod 777 mean? It grants read, write, and execute permissions to the owner, group, and all other users. This is generally insecure for production systems.

What is the difference between lowercase s and uppercase S? Lowercase s means the execute bit and the special bit (setuid or setgid) are both set. Uppercase S means only the special bit is set, without execute permission.

What is the sticky bit used for? The sticky bit is commonly set on shared directories like /tmp to prevent users from deleting or renaming each other's files, even though they all have write access to the directory.