Umaskumask (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:
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ólicoUma 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ólicoNo 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 octalUmasks 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
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 octalAssumindo 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
Veja tambémReferênciasLigaçõ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) |