Por que o chmod tem dois significados diferentes para 5? [fechadas]

0

Acho que tenho uma compreensão bastante sólida das permissões de arquivo, mas há um conjunto específico de permissões com um elemento que não entendo.

O conjunto de permissões 0755 deve ser exibido como rwx-rx-rx

Mas no meu terminal 0755 aparece como rwx-rx-x

Por que o 5 na posição "Other / World" aparece apenas como execute enquanto a permissão "Group" é 5, mas mostra como read / execute?

Eu pesquisei a resposta no Google, mas cada pergunta semelhante que encontrei foi respondida com uma explicação da tabela de permissões, mas nunca abordei os dois valores diferentes de 5.

    
por user2512677 17.07.2016 / 16:42

1 resposta

2

Os valores de permissão são octal e representam 3 campos de 3 bits. 5 tem apenas um valor 0b101 . As permissões que você está tentando definir estão mascaradas com seu valor umask , o que, suponho, é 026 , ou seja:

Value you're trying to set: 755 or 0b111101101
Umask                       026 or 0b000010110
-----------------------------------------------
Actual bits used by 'chmod' 751 or 0b111101001
Going back to rwx, the bits are      rwxrwxrwx
And the actual permissions set are   rwxr-x--x

Veja man umask .

Os três dígitos da permissão (existem mais alguns, mas esse é o curso avançado) especificam permissões de acesso ao arquivo para o proprietário do arquivo (primeiro dígito octal), usuários com o mesmo GID do arquivo (segundo dígito octal) e Todos os outros (não proprietário, não mesmo ID do grupo) (terceiro dígito octal).

    
por waltinator 17.07.2016 / 17:02