umask

umask (abreviado de user mask (máscara de usuário) é um comando e uma função em ambientes POSIX que determinam as permissões padrão para novos arquivos e diretórios criados.

Sistemas Unix modernos permitem que o umask seja especificado em dois possíveis modos:

  • Uma permissão padrão, também conhecido como Umask Simbólico. E.g. u=rwx,g=rwx,o=
  • Um número octal o qual controla quais permissões serão retiradas de novos arquivos criados, e.g. 007.

Em ambos os casos, lembre-se que a maioria dos sistemas Unix não permite que novos arquivos sejam criados com permissão de execução ativada, não interessando qual umask esteja configurada.

Umask simbólico

Uma umask ajustada para u=rwx,g=rwx,o= resultará em novos arquivos tendo as permissões rw-rw---- (leia a frase acima), e novos diretórios com permissões rwxrwx---.

Exemplo sobre umask simbólico

No bash:

 $ umask u=rwx,g=rwx,o=
 $ mkdir foo
 $ touch bar
 $ ls -l
 drwxrwx--- 2 dave dave 512 Sep  1 20:59 foo
 -rw-rw---- 1 dave dave   0 Sep  1 20:59 bar

Umask octal

Umasks octais são calculadas via bitwise AND do complemento unitário do argumento (usando bitwise NOT) e o modo de acesso total.

As modificações apenas terão efeito durante a sessão corrente.

O modo de acesso total é 666 para arquivos, e 777 no caso de diretórios. A maioria dos Unix shells proporciona um comando umask que afeta a todos os processos-filhos executados a partir deste shel. umask usa 777 por padrão tanto para arquivos quanto para diretórios. Se quiser máscaras diferentes para arquivos e diretórios, você deve usar fmask ou dmask.

Um valor comumente usado é 022 (proibindo a permissão de escrita para o grupo e outros), o que assegura que novos arquivos sejam apagados apenas pelo proprietário (i.e. o usuário que o criou). Um outro valor comum é 002, que mantém a permissão de escrita nos arquivos para o grupo do usuário. Isso pode ser usado para arquivos compartilhados com vários usuários trabalhando com os mesmos arquivos.

Tabela de permissões

  • 0 – ler, escrever e executar
  • 1 – ler e escrever
  • 2 – ler e executar
  • 3 – somente ler
  • 4 – escrever e executar
  • 5 – somente escrever
  • 6 – somente executar
  • 7 – sem permissões
Tabela Umask
Arquivo
UmaskBinárioTextoDiretório
0r-xrw-rwx
1r--rw-rw-
2r-xr--r-x
3r--r--r--
4--x-w--wx
5----w--w-
6--x-----x
7---------

Note que o umask faz o inverso do chmod, enquanto por exemplo o chmod com a opção 1 adiciona permissão de execução, o umask faz o inverso, retira tal permissão, logo só necessita aprender um e inverter em seu uso, observando é lógico as nuances entre umask e chmod.

Exemplos sobre umask octal

Assumindo que o umask tenha o valor 174, qualquer novo arquivo será criado com a permissão 602 e qualquer novo diretório com a permissão 603 pois:

6668 AND NOT(1748) = 6028

enquanto que

7778 AND NOT(1748) = 6038
7778 = (111 111 111)2
1748 = (001 111 100)2
NOT(001 111 100)2 = (110 000 011)2
(111 111 111)2 AND (110 000 011)2 = (110 000 011)2
     7778           NOT (174)8          (603)8

No bash:

 $ umask 0174
 $ mkdir foo
 $ touch bar
 $ ls -l
 drw-----wx 2 dave dave 512 Sep  1 20:59 foo
 -rw-----w- 1 dave dave   0 Sep  1 20:59 bar

Usando a máscara acima, octal 1 proíbe o bit de execução de ser usado, octal 7 proíbe todos os bits do grupo de serem ativados, e octal 4 proíbe o bit de leitura para outros.

Dicas

  • Esteja atento ao fato de que o umask utilizado aplica-se somente ao processo corrente e aos processos-filhos que ele criar.
  • Se estiver usando (S)FTP você deve reiniciar o daemon (S)FTP após configurar uma umask. Além disso, você deve reconectar ao servidor a fim de que a nova umask tenha efeito.

Veja também

Ligações externas

( Este artigo foi traduzido do artigo de mesmo título da página do Wikipedia em inglês. 10 de maio de 2009)

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.