Por que a umask usa este complicado sistema numérico?

3

Estou tentando aprender como usar a umask, mas parece muito complicado.

Além de todas as subtrações que tenho que fazer em minha cabeça separadamente para diretórios e arquivos toda vez que vejo um valor de máscara, o umask parece diferente em momentos diferentes (veja abaixo).

Por exemplo, se eu tiver uma máscara de

umask
0002

também pode ser visto como

umask -S
u=rwx,g=rwx,o=rx

Por que o umask atribui rwxrwxr-x e não -------w- nesse caso? Quando eu sou dado 0002 devo calcular as permissões para arquivos por 666-002 e diretórios por 777-002. Não deveria então umask -S me dar uma coisa semelhante para que eu possa calcular com. Por exemplo, negation-of(-------w-) . Assim, em um caso, ele age como uma máscara para a negação e, no segundo, apenas dá o resultado do que eu entendo. Por que esse comportamento ambíguo?

    
por Pithikos 10.03.2014 / 16:08

1 resposta

1

É assim que o comportamento de umask é definido:

If -S is specified, the message shall be in the following format:

"u=%s,g=%s,o=%s\n", , ,

where the three values shall be combinations of letters from the set { r, w, x}; the presence of a letter shall indicate that the corresponding bit is clear in the file mode creation mask.

(de link )

Parece lógico que ser capaz de exibir a máscara em ambos os formulários seria útil, embora a página umask(1) man não seja muito clara sobre o que a opção -S faz.

    
por 10.03.2014 / 19:26