umask

A umask (user mask) são 3 números que definem as permissões iniciais do dono, grupo e outros usuários que o arquivo/diretório receberá quando for criado ou copiado para um novo local. Digite umask sem parâmetros para retornar o valor de sua umask atual.

A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binário (um programa executável) ou texto (“Arquivo texto e binário”) . Veja a tabela a seguir para ver qual é a mais adequada a sua situação:

---------------------------------------------
|       |        ARQUIVO       | DIRETÓRIO  |
| UMASK |----------------------|            |
|       |   Binário  |  Texto  |            |
|------------------------------|------------|
|   0   |    r-x     |   rw-   |    rwx     |
|   1   |    r--     |   rw-   |    rw-     |
|   2   |    r-x     |   r--   |    r-x     |
|   3   |    r--     |   r--   |    r--     |
|   4   |    --x     |   -w-   |    -wx     |
|   5   |    ---     |   -w-   |    -w-     |
|   6   |    --x     |   ---   |    --x     |
|   7   |    ---     |   ---   |    ---     |
---------------------------------------------

Um arquivo texto criado com o comando umask 012;touch texto.txt receberá as permissões -rw-rw-r--, pois 0 (dono) terá permissões rw-, 1 (grupo), terá permissões rw- e 2 (outros usuários) terão permissões r--. Um arquivo binário copiado com o comando umask 012;cp /bin/ls /tmp/ls receberá as permissões -r-xr--r-x (confira com a tabela acima).

Por este motivo é preciso atenção antes de escolher a umask, um valor mal escolhido poderia causar problemas de acesso a arquivos, diretórios ou programas não sendo executados. O valor padrão da umask na maioria das distribuições atuais é 022. A umask padrão no sistema Debian é a 022.

A umask é de grande utilidade para programas que criam arquivos/diretórios temporários, desta forma pode-se bloquear o acesso de outros usuários desde a criação do arquivo, evitando recorrer ao chmod.