No GNU/Linux temos os controles de permissões que impedem o acesso indevido de programas e pessoas não autorizadas a determinados arquivos, o que garante um nível de segurança ao sistema. Nesse artigo nos aprofundaremos em tais permissões e no uso dos comandos chmod e umask.
Bom, agora que já sabemos como atribuir tipos de acesso a um arquivo para usuário e grupos de usuários, vamos fazer uma introdução ao comando umask.
A pergunta que não quer calar:
Toda vez que crio um arquivo ou diretório, os mesmos já vem com uma permissão, mas eu não informei nenhum tipo de acesso a eles, de onde vieram essas permissões?
O que é umask?
Defino o umask como uma máscara padrão de permissão de acesso ao arquivo de sistema (File System) do GNU/Linux.
Como assim?
Quando criamos um arquivo ou diretório, os mesmos já vem com uma permissão padrão, para evitar que outros usuários e membros de outros grupos possam modificar os arquivos criados por você.
Para saber qual máscara de arquivo que seu sistema estar usando, bastar digitar o comando umask sem parâmetros. Exemplo:
$ umask
0022
O resultado acima é o seguinte:
0 : Este só indica que é o valor de uma umask;
0 : Dá acesso total ao arquivo criado pelo usuário;
2 : Dá acesso de Leitura e execução do arquivo, no caso de um diretório permiti que este seja acessado através do comando \"cd <diretório>\";
2 : O Mesmo direitos acima, só que para os outros usuários do sistema.
OK e como faço para modificar essa máscara?
Vamos relembrar um pouco o modo octal, lembram que para determinar um nível de acesso para o Dono, Grupo, Outros bastava somar os números relacionados ao tipo de permissão e que o acesso total a um arquivo tem o valor 7 {4(r) + 2(w) + 1(x) =7(full}?
No umask vamos utilizar o valor total de acesso do modo octal 777 para determinar o valor da umask, mas agora em vez de somarmos vamos subtrair.
Exemplo:
Toda vez que eu criar um arquivo ou diretório quero que eles tenham acesso total.
777 -> Acesso Total a um arquivo/diretório
- 777 -> Acesso que desejamos ter através da umask
----------
. 000 -> Valor da umask
$ umask 000
ou $ umask 0000
Resultado:
-rw-rw-rw- 1 gabriel users 178 2004-09-29 13:23 arquivo
drwxrwxrwx 2 gabriel users 48 2004-09-29 13:02 diretório
OBS1: Por motivo de segurança o bit (x) que permitir a execução de um arquivo binário ou script é desabilitado na umask.
OBS2: Lembrando que o primeiro 0 a esquerda é só para informar que é o valor de uma umask, e é opcional.
Bom pessoal, tudo que eu sei e entendo por umask é isso, para maiores informações, consultem o manual do comando:
[1] Comentário enviado por davidsonpaulo em 03/11/2004 - 18:55h
Interessante, muito interessante. O domínio dessas ferramentas básicas é que distingue um usuário comum de um administrador de sistema.
Só achei muito pobre a explicação sobre o umask, poderia haver mais exemplos, só foi detalhado como dar permissão completa.
Mas de qualquer forma valeu. O importante é a colaboração contínua de todos da comunidade.
Abraços!
[2] Comentário enviado por m4sk4r4 em 04/11/2004 - 01:21h
O Próximo artigo tentarei aborda um pouco mais sobre o umask, mais não tem muita ciencia não. é so para definir um padrão de acesso a arquivos e diretórios criados. um exemplo é um servidor de ftp, onde definimos uma mascara para os uploadfile, ou seja todo arquivo que for jogado no servidor por um usuário vai obter um padrão de acesso sobre o arquivo(r, w x).
Mais valeu ae.
[3] Comentário enviado por engos em 04/11/2004 - 17:22h
Achei muito fraco pelo fato de não ter nenhuma novidade, principalmente porque já tem um artigo tão bom quanto esse aqui no VOL, do qual também não fala nada sobre SUID e SGID.
Gostei de como você escreveu o artigo, dando exemplos e explicando de forma clara, espero ver mais artigos seus e que eles mantenham esse padrão de qualidade.
[10] Comentário enviado por cmelo em 01/08/2006 - 20:57h
Olá Pessoal,
Descobri um maneira de alterar de forma permanete o umask do sistema linux.
Uso o Suse 10.1, e o meu objetivo é que os usuários do grupo users ao criarem um arquivo no OpenOffice por exemplo, automaticamente os outros usuários tenham acesso para modificá-los.
Trabalho em um escritório de advocacia e por isso existe a necessidade real de vários advogados e estagiários alterarem uma mesma petição (arquivo). Como um advogado não teria tempo nem paciência de aprender sobre permissões, simplesmente precisei colocar o umask para 0002 .
Vamos ao que interessa:
altere o umask na seguinte linha no arquivo /etc/profile
# The user file-creation mask
#umask 022
umask 002
Se este bit for ativado, faz com que arquivos criados em um determinado diretório só possam ser apagados por quem o criou (dono) ou pelo super-usuário do sistema. Um exemplo de uso do STICKY é o diretório /tmp.
[15] Comentário enviado por cmelo em 01/10/2007 - 16:02h
Olá Pessoal, postei acima uma forma de alterar o umask definitivamente, porém ao usar o opensuse 10.2, descobri a maneira correta e fácil de fazer essa alteração:
1 - yast -> segurança e usuários -> gerenciamento de grupo -> opçoes de especialista -> padrões para novos usuários -> Alterar a opção Umask para: 002
Ou ir direto no arquivo de configuração indicado no etc/profile que é o arquivo etc/login.defs
2 - alterar o Umask para 002