Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

i wanted to know the Read / Write Access on to a file , so i did this way

ls -l Denem.sh

This command displayed

-rwxr-xr-x  1 pavan employee 672 DEC 20  2000 pavan.sh

Could anybody please tell me what -rwxr-xr-x indicates ??
From Wikipedia.com i found that -rwxr-xr-x indicates

-rwxr-xr-x
for a regular file whose user class has full permissions and whose group and others classes have only the read and execute permissions.

Now my question is Should we take the middle thing (-xr-) into considiration ??

share|improve this question

migrated from stackoverflow.com Sep 14 '11 at 11:27

This question came from our site for professional and enthusiast programmers.

6  
RTFM: man 1 ls –  larsmans Sep 14 '11 at 11:24
2  
Be gentle, @larsmans. The OP is clearly a complete Unix newbie. Don't scare him/her away. –  Tom Zych Sep 14 '11 at 11:27
    
Sorry, but this was the second question by the OP about this very same topic on SO today. –  larsmans Sep 14 '11 at 11:30
    
Ah, well, in that case, you may fire when ready :) –  Tom Zych Sep 14 '11 at 11:32
    
This seems to me like a question which is mostly about WHAT file permissions are and HOW they work. That's why my answer was so long :) –  MaxMackie Sep 14 '11 at 16:05

2 Answers 2

This string:

-rwxr-xr-x

Is separated into four sections:

-    indicates what kind of file it is
rwx  (first 3) owner permissions
r-x  (second 3) group permissions
r-x  (last 3) other permissions

All together, this string is supposed to provide (at a glance) the most important aspects of a file. Namely what it is and who can do what with it.


First Section

The first character in the string is reserved for the file type. Any regular old file will simply have a - in this position. Other include:

d directory
p pipe/fifo
l link
c character device file
b block device file
s local domain socket

So a pipe might look like this:

prwx------ root root filename

Second - Third - Fourth Section

The next 9 bits describe the permissions that everyone has when it comes to this file. There are three types of permissions:

r read (opening the file for reading, can't save changes)
w write (change the contents of file)
x execute (run the file, like a script or binary)

And there are three groups to which these permissions may be applied to:

owner whoever owns the file (as seen by the output of ls -l)
group whoever is part of the group owner of this file
others anyone who doesn't fall in either of the two above categories

For example:

-rwxr-xr-x  1 pavan employee 672 DEC 20  2000 pavan.sh
pavan is the owner
employee is the group owner name
anyone else falls into "others"

Referring to the above example, if we want to make pavan have full control over the file, let anyone in the employee group to read or execute the file and block all permissions to others:

-rwxr-x---

The numbers

The reason permissions are sometimes represented with numbers is that it is generally easier to use an octal representation of the 9 bits (I still prefer straight up rwx).

To understand what the numbers mean you need to build a table (if you've ever done work with binary this will help):

#  r  w  x
0  0  0  0
1  0  0  1
2  0  1  0
3  0  1  1
4  1  0  0
5  1  0  1
6  1  1  0
7  1  1  1

You refer to this chart for each set of three bits. For example, if I decide to give the owner of the file complete control (r,w and x), only read for the group and also only read for others:

rwx owner corresponds to 7 in the table
r-- group corresponds to 4 in the table
r-- other corresponds to 4 in the table
Therefore my file has permissions 744
share|improve this answer
    
+1, perfect answer. –  Shadur Sep 14 '11 at 13:35
    
But just because a file has 'r' permissions for a user doesn't mean they can read it - they also need to r+x on a directory it is in. The rute (linux.2038bug.com/rute-home.html) is an excellent, free, online introduction to Unix (inlcuding file permissions) –  symcbean Sep 16 '11 at 12:22

Divide it up like this:

- rwx r-x r-x

It's owner, group, others. So the owner (pavan) can read, write, and execute; people in the group employee can read and execute, but not write; anyone else can also read and execute but not write.

The - in front would be d for a directory, l for a symbolic link, etc. man ls.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.