máscara vs. modo - permissões

1

De forma simples, qual é a diferença entre "mask" e "mode"? Pelo que entendi é que se um arquivo tem uma máscara de 0755 o modo do arquivo seria 7022 correto? É basicamente números invertidos?

    
por RedHatcc 03.09.2013 / 19:15

1 resposta

3

Os arquivos têm modos , no momento da criação, a máscara determina o modo, com base no modo solicitado. Uma máscara funciona como um estêncil e pode ser melhor ilustrada usando a representação binária.

Um umask de 0002 (formato inteiro octal comum) é representado como

000 000 000 010

na forma binária, ou

--- --- --- -w-

em forma simbólica.

Digamos que um arquivo seja criado pelo usuário, o modo é 0777 por padrão (para executáveis), mas a máscara será "subtraída" de certa maneira. Isso resulta no w bit a ser removido.

--- rwx rwx rwx  (mode)
--- --- --- -w-  (mask)
_______________ -
--- rwx rwx r-x  ==  000 111 111 101  ==  0775

Para arquivos regulares (não executáveis), o modo solicitado é sem o bit x (executável), ou seja, 0666 , portanto, a máscara resultará em:

--- rw- rw- rw-  (mode)
--- --- --- -w-  (mask)
_______________ -
--- rw- rw- r--  ==  000 110 110 100  ==  0664

O último é comum em listagens de diretórios (nos quais o primeiro octeto com bits SUID / SGID não é mostrado), por exemplo:

-rw-rw-r--   2 gert gert      228 Mar 20  2012 .vimrc

Claro, você sempre pode alterar esses modos com, por exemplo, o comando chmod , para o qual o umask não será considerado na edição.

    
por gertvdijk 03.09.2013 / 19:38