Entendendo os tipos de permissões

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.

[ Hits: 121.203 ]

Por: Gabriel em 03/11/2004


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:

$ man umask

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Tipos de permissões
   3. chmod (modo literal)
   4. chmod (modo octal)
   5. umask
   6. Conclusão
Outros artigos deste autor

Tipos de permissões especiais GNU/Linux

Hotwayd :: Conectando-se ao servidor POP3 do Hotmail

Leitura recomendada

Lógica para computação - parte III

Como explicar ao leigo o que é Sistema Operacional

DesktopBSD - opção ao FreeBSD para desktops

Instalando o Slackware 10.1

Interfaces Gráficas no Linux

  
Comentários
[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.

[]'s

[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.

[]s

[4] Comentário enviado por mchuva em 18/11/2004 - 18:30h

Bom artigo para os inis como eu. Me ajudou pra dar permissões a uns dirs que estava configurando no Apache. Flw ae Gabriel (my biba) :P!

[5] Comentário enviado por leo_mxs em 08/12/2004 - 11:12h

Poxa Valeu mesmo, esse artigo tá massa pra quem tá começando feito eu !! E a muito fácil de entender !!

[6] Comentário enviado por augusto_hp em 12/01/2005 - 16:26h

o Artigo é bom. Simples e bem esplicativo. Mas poderia ser mais completo.

[7] Comentário enviado por m4sk4r4 em 12/01/2005 - 22:18h

Olá

Bom dê uma olhada no complemento deste artigo.

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1812

t+

[8] Comentário enviado por eliz em 10/04/2006 - 16:10h

jah tinha visto vários artigos sobre o modo de permissão em octal, mas nunca conseguia entender muito bem, mas dessa vez ficou bem claro.
vlw ;)

[9] Comentário enviado por Maycon Pires em 22/04/2006 - 05:50h

Parabens pelo artigo o desenvolvimento foi excelente !!! vlw abraços

[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

[11] Comentário enviado por cmelo em 01/08/2006 - 20:58h

Preciso saber como eu faço para os usuários não apagarem um pasta inteira de uma só vez.

Imagine a secretária inteligente deletando uma pasta com todas as petições!

Alguém sabe como impedir isso, com o umask em 002 ?

Um abraço !

[12] Comentário enviado por allanhc em 24/08/2006 - 17:47h

Para evitar este tipo de problema aqui usei um alias para o comando rm que mudava para rm -i, mas creio qua a secretaria não utilize o shell

[13] Comentário enviado por alexlucena em 03/12/2006 - 01:18h

mt explicado
vlw

[14] Comentário enviado por cmelo em 26/04/2007 - 15:48h

Descobri a solução para a secretária não apagar as pastas. Usar o stick. Veja a explicação completa no excelente artigo do Gabriel Santana em : http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1812


--

STICKY

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

É isso aí.

[16] Comentário enviado por foguinho.peruca em 06/01/2008 - 06:57h

Opa!

Gostei do artigo!! Toh aprendendo a mexer com o linux faz poko tempo (jah me aventuro com slack... mas ateh agora ele aum eh esse bixo d 7 kbças!!!)

o artigo me ajudo a acessar umas pastas q tava com permissão soh pro root, via outro usuario...

vlw!

[17] Comentário enviado por enki em 05/03/2010 - 11:32h

Muito bom teu artigo, parabéns pela iniciativa.


Contribuir com comentário