Permissões - referência rápida

rba

Este breve guia tem por alvo a introdução a um tema vasto e a meu ver, de extrema importância, que é a manipulação de permissões de arquivos e diretórios em ambientes *nix. Tento apenas explicar e exemplificar as bases para manipulação de permissões via comando chmod, deixando ao leitor a responsabilidade de um maior aprofundamento no assunto.

[ Hits: 30.719 ]

Por: RBA OMNQF em 26/04/2007 | Blog: http://rbaomnqf.multiply.com


Sintaxe



Vale recordar que não estão contempladas aqui todas as variações do tema, apenas as mais correntes.

Tenha também em mente que podem ocorrer variações nas opções entre os diversos Unix/Linux.

Comando: chmod - altera a permissões de acesso aos arquivos

Sintaxe:

chmod [opções] modo arquivo... (formato padrão)
chmod [ugoa][+-=] rwxst arquivo... (formato padrão)
chmod modo arquivo... (formato octal)
chmod [0-7][0-7][0-7][0-7] arquivo... (formato octal)

Opções (formato padrão):
  • "u" - usuário (user) - Indica que a permissão será aplicada a nível do usuário.
  • "g" - grupo (group) - Indica que a permissão será aplicada a nível do grupo.
  • "o" - outros (other) - Indica que a permissão será aplicada a nível de outros.
  • "a" - todos (all) - Indica que a permissão será aplicada em todos os níveis.
  • "+" - Acrescenta permissões.
  • "-" - Retira permissões.
  • "=" - Troca permissões.

Modo (formato padrão):
  • "r" - read (leitura): Quando aplicada a um arquivo, permite a leitura do mesmo. Quando aplicada a um diretório, permite listar o conteúdo do mesmo.
  • "w" - write (escrita): Quando aplicada a um arquivo, permite a alteração/gravação de conteúdo do mesmo. Quando aplicada a um diretório, permite criar/gravar/alterar o seu conteúdo.
  • "x" - execute (execução): Quando aplicada a um arquivo, permite que o mesmo seja executado. Quando aplicada a um diretório, permite que este seja acessado.
  • "s" - set user/group id (seleciona identificação de usuário/grupo durante a execução): Quando aplicada a um arquivo, permite que, em tempo de execução, o executor do arquivo passe a ter os mesmos privilégios que o usuário/grupo donos do mesmo.
  • "t" - stick bit (bit contrário): Quando aplicada a um diretório, restringe a ação de alterar seu conteúdo ao dono do diretório e ao criador do conteúdo.

Modo (formato octal):

Neste caso as permissões serão aplicadas utilizando-se o sistema numérico de base 8 (octal), onde teremos:
  • 1ª posição: Chaveamento para as permissões especiais "set user/group id (suid/sgid)" e "stick bit".
  • 2ª posição: Chaveamento para as permissões a nível de usuário.
  • 3ª posição: Chaveamento para as permissões a nível de grupo.
  • 4ª posição: Chaveamento para as permissões a nível de outros.

    Próxima página

Páginas do artigo
   1. Sintaxe
   2. Mapeamento de permissões em um diretório
   3. Mapeamento de permissões em um arquivo
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Entendendo MBR e sistema de arquivos GNU/Linux

Utilizando atributos em partições ReiserFS

Transferência de arquivos remota de forma segura de Windows para Linux

Controlando projetos com o fantástico CVS

Expandindo partição em LVM

  
Comentários
[1] Comentário enviado por anselmoborges em 27/04/2007 - 01:14h

boa boa....
to estudando isso pro LPI101 mais eh sempre bom dah uma reforçada...

___abraçonn

[2] Comentário enviado por sergelli em 12/08/2007 - 20:25h

Bem escrito e objetivo.
Seria ótimo se informasse como criar arquivos e diretórios com as permissões diferentes da default, sem alterar o /etc/profiles.
Está dificil achar info sobre isso na Internet inteira!

[3] Comentário enviado por rba em 21/08/2007 - 22:00h

Não me ocorre nada para criar arquivos com as pemissões diferentes do padrão, porém, para criar diretórios com permissões diferentes do padrão, você utiliza a opção "-m" com o mkdir.

Utiliza-se a notação octal do chmod, algo como:

mkdir -m 1755 /home/rba/tmp

Isso resultaria na criação de um diretório tmp com o stick bit ligado.

[4] Comentário enviado por GilsonDeElt em 08/09/2011 - 14:23h

Curti muito seu artigo, cara!

Sobre o que você disse de idéias para isso, criando arquivos com permissões
diferentes do padrão, eu tenho uma idéia:

- Um programa de seu usuário deve gerar um log, e você quer/precisa que esse log seja gerado em diversos arquivos,
separados por data, em nome dele.
Precisa também que o usuário não possa acessar a pasta.

Daí, você pode criar os arquivos com "chmod 4222 arquivo", onde "222" só dá permissão de escrita para todos, mas só com o root você conseguiria ler os arquivos.

Ou então, cria os arquivos normalmente, mas dentro de uma pasta que o usuário não tenha permissão de leitura: "chmod 0333 minha-pasta".

Valeu!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts