Suponha que a máscara padrão de 0666. umask
0022 faria com que a nova máscara 0644 (0666-0022 = 0644) significasse que o grupo e outros tinham permissões de leitura (sem gravação ou execução).
O dígito "extra" (o primeiro número = 0), especifica que não há modos especiais.
Se o modo começar com um dígito, ele será interpretado como octal, caso contrário, significa ser simbólico.
0 é um dígito, como é 1 (para o bit pegajoso) ou 6 (para o SGID). Um comando como chmod
pode ser chamado por outros métodos, como chmod ug+rw mydir
, onde você adicionaria as permissões de leitura e gravação ao usuário e ao grupo. Observe que o modo neste caso (ug + rw) não começa com um dígito, portanto, não seria interpretado como octal, mas sim simbólico.
Veja en.wikipedia.org/wiki/Chmod#Symbolic_examples para simbólicos, bem como www.lifeaftercoffee.com/2007/03/20/especial-permission-modes -em-linux-e-unix / para um pouco em modos especiais.
Eu não sei se você desmascararia o primeiro bit com umask
, mas tecnicamente você poderia. Isso explicaria porque você quase sempre vê isso como um zero.
Crédito para pinkfloydx33
O primeiro dígito da máscara lida com permissões especiais que não se encaixam tão bem no modelo proprietário / grupo / outro. Quando quatro dígitos são fornecidos para uma permissão de arquivo, o primeiro refere-se a esses valores especiais:
4000 = SUID
2000 = SGID
1000 = sticky bit
O bit SUID, abreviação de set-user-ID, faz com que um programa executável seja executado com o ID de usuário efetivo (uid) do proprietário - em outras palavras, independentemente de quem o executa, o programa é executado com o proprietário direitos. Isso é comumente visto em programas que fazem coisas que exigem privilégios de root, mas que devem ser executados por usuários normais: passwd
é um desses exemplos.
O bit SGID, abreviação de set-group-ID, é muito semelhante, mas é executado com o grupo id (gid) do proprietário.
O bit pegajoso é um pouco mais complicado, se você quiser mais informações sobre isso, você pode ler a página de manual para sticky
.
Esses bits também podem ser usados com diretórios, mas seus significados mudam.
Eu não acredito que você possa realmente definir o umask
para permitir que você habilite qualquer um desses bits extras por padrão, mas você provavelmente nunca desejaria fazer isso de qualquer maneira.
Crédito para user470379