Understanding File Permissions in Ubuntu

Contents

File permissions in Ubuntu and other Unix-like operating systems are crucial for controlling access to files and directories. They determine who can read, write, or execute a file or directory. You can use the ls command with the -l option to display detailed information about file permissions. Here’s what each part of the output means:

ls -l /path/to/file
-rwxr-xr-x 1 10490 floppy 17242 May  8  2013 acroread
  1. The first character - represents the type of object it is. Here, it’s a regular file. Other possible values include:
    • d: Directory
    • c: Character device
    • l: Symbolic link
    • p: Named pipe (FIFO)
    • s: Socket
    • b: Block device
    • D: Door (door file)
    • -: Regular file

The next three characters rwx represent permissions for the owner of the file. Specifically:

  • r: Read permission
  • w: Write permission
  • x: Execute permission

The next three characters r-x represent permissions for the group of the file. In this case:

  • r: Read permission
  • -: No write permission
  • x: Execute permission

The last three characters r-x represent permissions for others, meaning users who are neither the owner nor in the group:

  • r: Read permission
  • -: No write permission
  • x: Execute permission

Additionally, you might see s, S, t, or T in the place of the x permission. These special permissions indicate setuid (s), setgid (S), or the sticky bit (t or T) for the file or directory.

Octal Notation

File permissions can also be represented in octal notation, which is a concise way to express them. In octal notation:

  • Read (r) is represented by 4.
  • Write (w) is represented by 2.
  • Execute (x) is represented by 1.

You calculate the octal representation by summing these values for the owner, group, and others’ permissions. For example, if you see 755 in octal notation, it translates as follows:

  • For the owner, it’s 4 (read) + 2 (write) + 1 (execute) = 7.
  • For the group, it’s 4 (read) + 0 (no write) + 1 (execute) = 5.
  • For others, it’s 4 (read) + 0 (no write) + 1 (execute) = 5.

To view file permissions in octal notation, you can use the stat command with a specific format:

stat -c "%a %n" /path/of/file

For example:

stat -c "%a %n" acroread
755 acroread

In this case, you can see that the octal notation 755 corresponds to the file’s permissions, as explained above.

0%