When we execute the ls command with a long listing format, what does this mean?
ls -l filename
-l option of a ls command will instruct ls to display output in a long listing format which means that instead of output containing only a name(s) of file or directory the ls command will produce additional information.
ls -l file -rw-rw-r--. 1 root swat 0 Jan 26 09:30 file1
From the output above we can deduct a following information:
- -rw-rw-r- permissions
- 1 : number of linked hard-links
- root: owner of the file
- swat: to which group this file belongs to
- 0: size
- Jan 26 09:30 modification/creation date and time
- file1: file/directory name
To answer your question we will look more closely at the permissions part of ls long listing format output:
The permissions part can be broken down to 4 parts. First part in this example is “-” which specifies that this is a regular file. Other common uses are:
- l this specifies symbolic links
- d stands for directory
- c stands for character file
Next three parts are also called octets and they define a permissions applied to this file. First octet ( -rw- ) defines a permission for a file owner. In this case owner has read and write permissions. Second part ( rw- ) defines read and write permissions defined for a group. And the last part defines read-only permissions for others ( everyone else ).
From permissions listed as:
we can conclude that this particular file is a symbolics link pointing to yet another file somewhere within a file system. It lists full permissions for an owner, group and everyone else. Although it has full permissions for everyone it does not mean that the file it is pointing to will also have the same permissions ( in most cases it does not !). We can check the file name to see where this symbolic link is pointing to. For example this X executable binary points to Xorg in the same directory:
$ ls -l X lrwxrwxrwx. 1 root root 4 Feb 22 10:52 X -> Xorg