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.