Por que as permissões octais começam com 40?

1

Acabei de instalar o nemo e estou exibindo o campo de permissão octal. As permissões são coisas como 40755 e 100755. Estou familiarizado com os últimos três dígitos (755) e presumo que sejam permissões de rwx para o proprietário, grupo e todos os outros. Quais são as permissões de prefixo - o 40 e o 100 no meu exemplo?

    
por Jack 20.02.2014 / 15:28

2 respostas

7

Eles são o tipo de arquivo. 10 é um fifo e 40 é um diretório. De 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
    
por psusi 20.02.2014 / 15:32
3

Observação / correção: permissão octal é dada em 7 posições: 0000000 Vamos chamá-los de gfedcba.

A posição "a" é para "outros" e é a soma dos direitos: 1 (execute ou insira um diretório), 2 (escreva) e 4 (leia). exemplo: 7 é 4 + 2 + 1; 6 é 4 + 2 ...

A posição "b" é a mesma, mas para "grupo"

A posição "c" é para o "proprietário"

A posição "d" é para a soma dos caracteres especiais: 1 para pegajoso (somente o proprietário pode renomear ou excluir um arquivo se isso estiver definido para as outras permissões) 2 para grupo forçado (o grupo de um novo arquivo será o grupo do diretório se o dono do arquivo tiver permissão para "gravar" nesse diretório) 4 para proprietário forçado (o proprietário de um novo arquivo será o proprietário do diretório se o proprietário real (o criador) do arquivo tiver a permissão "gravar" no diretório)

A posição "e" para "g" é para o tipo "node": (001 é um FIFO) (002 é um dispositivo de personagem) 004 é um dir 006 é um dispositivo de bloco (você pode encontrar alguns em / dev) 010 é um arquivo 012 é um link simbólico .. (Veja a lista na resposta precedente)

    
por mipaquet01 07.06.2015 / 14:25