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.
Dar e negar acesso a um arquivo ao Dono, Grupo, e a Outros usuários do sistema pelo modo literal é a maneira mais fácil de se entender, pois vamos usar letras para identificar os tipos de permissões:
u : (User) Proprietário do arquivo;
g : (group) Usuários que fazem parte do grupo do proprietário;
o : (Others) Outros usuário que não é o dono e nem faz parte do grupo;
a : (All) Todos, faz referência ao (User, group e Others).
Vamos utilizar também os símbolos [+] , [-] e [=] para atribuir uma permissão:
+ : Adicionar permissão
- : Remover permissão
= : Igualar permissão
Para atribuir a permissão ao arquivo vamos utilizar o comando chmod:
chmod [options] mode file
Vamos por a mão na massa, abaixo vou descrever alguns exemplos de como atribuir permissão pelo modo literal, depois é só praticar.
$ chmod a+rwx arquivo.sh
Dá controle total sobre o arquivo para o Dono, Grupo, e os outros usuário do sistema.
$ chmod g-rw arquivo.sh
Remove o acesso a leitura e escrita aos usuários do grupo.
$ chmod o=--- arquivo.sh
Remove qualquer tipo de acesso aos usuários que não são dono do arquivo e nem fazem parte do grupo do proprietário do arquivo.
OBS: Os exemplos acima foram aplicados em um arquivo, mais é o mesmo procedimento para um diretório.
Bom, agora só falta praticar e colocar essa massa cinzenta que todos nós temos pra funcionar, vamos ao modo octal!
[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