Linux / UNIX – Display the permissions of a file

Posted on in Categories , , , , , , , , , last updated July 31, 2007

Q. How do I list or display the permission of a file using ssh? I don’t have GUI installed on a remote Linux computer.

A.You need to use ls command with -l option. File access permissions are displayed in the first column of the output, after the character for file type.

ls command List information about the FILEs. If no argument is given it will use the current directory by default.

Task: List a file’s access permissions

Type ls -l command as follows to display permission for /etc/passwd file:
$ ls -l /etc/passwd
Output

-rw-r--r-- 1 root root 2453 Jul 17 16:25 /etc/passwd

Understanding the file permission

File access permissions appear in the first column of the output i.e. -rw-r–r–

  • The first character – is nothing but the file type. – means regular file and d means directory.
  • The next three characters (rw-) specify permissions for the user who owns the file
  • The next three (r–) specify permissions for all members of the group that owns the file.
  • Finally, the last three characters in the column (r–) specify permissions for all other users on the system.

Each character in permission has meaning as follows:

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

For example rw- permission means owner can read, write to a file but cannot execute the same.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

11 comment

  1. Is there any way to list for what users those permissions apply?
    Like the “Permissions” display box in Windows?
    What I would like to know is:
    user John has read + execute permissions
    user Annie has only read permissions
    Group Developpers has read/write/exec permission

    etc.

    Any way to do that?

    1. That’s not really necessary to be broken down. Again using the example above it’s easy to see who has what permissions.
      -rw-r–r– 1 root root 2453 Jul 17 16:25 /etc/passwd

      In the example, the owner of the file is root and the group is root.
      The owner has read+write permissions
      The group of root has read only
      And then everyone else has read only.

      So as long as you know what user and group owns a file and who that owner is and who is in that group (which is easy to look up) then you know everyone’s permissions.

      1. Thanks, and it does make this clear.
        What I was looking for is something that the Unix permissions do not even provide – I was thinking I can assign rights to many different users, but this is not possible at all.
        In Windows, I can, for a single file, assign 20 users various rights. The standard Unix permission have a single owner, a single group and “everybody else”.

  2. Sorry to add another question on your post man, but when i type

    ls -1 it list just file names. not permissions. like this

    ls -1
    bro
    dad
    desktop
    mom
    sis

    shows no permissions. any suggestions?

Leave a Comment