Why do octal permissions start with 40?

I just installed nemo and I am displaying the octal permission field. The permissions are things like 40755 and 100755. I am familiar with the last three digits (755) and I assume those are rwx permissions for owner, group and everyone else. What are the prefix permissions - the 40 and the 100 in my example?


They are the file type. 10 is a fifo, and 40 is a directory. From man 2 stat:

   The following flags are defined for the st_mode field:

       S_IFMT     0170000   bit mask for the file type bit fields
       S_IFSOCK   0140000   socket
       S_IFLNK    0120000   symbolic link
       S_IFREG    0100000   regular file
       S_IFBLK    0060000   block device
       S_IFDIR    0040000   directory
       S_IFCHR    0020000   character device
       S_IFIFO    0010000   FIFO
       S_ISUID    0004000   set-user-ID bit
       S_ISGID    0002000   set-group-ID bit (see below)
       S_ISVTX    0001000   sticky bit (see below)
       S_IRWXU    00700     mask for file owner permissions
       S_IRUSR    00400     owner has read permission
       S_IWUSR    00200     owner has write permission
       S_IXUSR    00100     owner has execute permission
       S_IRWXG    00070     mask for group permissions
       S_IRGRP    00040     group has read permission
       S_IWGRP    00020     group has write permission
       S_IXGRP    00010     group has execute permission
       S_IRWXO    00007     mask for permissions for others (not in group)
       S_IROTH    00004     others have read permission
       S_IWOTH    00002     others have write permission
       S_IXOTH    00001     others have execute permission

Remark/correction: octal permission is given on 7 positions:0000000 lets call them gfedcba.

Position "a" is for "others" and is the sum of the rights : 1 (execute or enter for a directory), 2 (write) and 4 (read). exemple: 7 is 4+2+1; 6 is 4+2 ...

Postion "b" is the same but for "group"

Position "c" is for the "owner"

Position "d" is for the sum of the special carracters: 1 for sticky (only the owner can rename or delete a file if this is set wathever are the other permissions) 2 for forced group (group of a new file will be the dir's group if the owner of the file is allowed to "write" in that dir) 4 for forced owner (owner of a new file will be the dir's owner if the real owner (the creator) of the file have the "write" permission in the dir)

Position "e" to "g" is for the "node" type: (001 is a FIFO) (002 is a carracter device) 004 is a dir 006 is a block device (you could find some in /dev) 010 is a file 012 is a symlink .. (See list in precedent reply)