Permissões e propriedades de arquivos

Neste artigo falarei sobre como distinguir níveis e tipos de permissão em arquivos e diretórios, utilizar os comando chmod e chown para modificar propriedades e permissões, distinguir os modos octal e textual para os parâmetros dos comandos de mudança de permissões, entender o que é máscara de um arquivo e como modificá-la, entender e utilizar permissões especiais, como stick bit e suid bit.

[ Hits: 104.973 ]

Por: Eduardo Vieira Mendes em 14/07/2008


Modificando proprietários e grupos



Nesta seção, irei apresentar os principais comandos utilizados para modificar e visualiza as propriedades e permissões de arquivos e diretórios.

chmod

Permite que se alterem as permissões e propriedades de um ou mais arquivos (change mode). É importante ressaltar que o usuário deve ter permissões para fazer as alterações (por exemplo: deve ser o usuário root, deve ser dono do arquivo, ou deve estar no grupo do arquivo, com permissão de escrita). Pode utilizar tanto a notação textual como a octal.

Principais opções:

chmod [ opções ] arquivo | diretório
-R Permite que se altere recursivamente as permissões de arquivos e diretórios.
--reference=arquivo Permite que um determinado arquivo seja modificado tomando como referência o arquivo especificado.


As tabelas a seguir facilitam a visualização das notações utilizadas pelo chmod.

Nível de Permissão
u Usuário ou dono do arquivo.
g Grupo do arquivo.
o Outros usuários que não são donos e não estão cadastrados no grupo.
a Afeta todos os anteriores (u, g, o).
Tipo de Permissão - Notação Textual
r Concede ou remove permissão de leitura.
w Concede ou remove permissão de escrita.
x Concede ou remove permissão de execução.
a Concede ou remove todas as permissões anteriores (all).
Tipo de Permissão - Notação Octal
4 Indica permissão de leitura.
2 Indica permissão de escrita.
1 Indica permissão de execução.
7 Indica todas as permissões.
0 indica sem permissão.
Operadores
+ Concede permissão(ões) especificada(s).
- Remove permissão(ões).
= Atribui somente esta(s) permissão(ões) ao arquivo, removendo a(s) que não sem encontra(m) explícita(s).


Exemplos:

1) chmod u+rw,g+x documento.txt - concede permissões de leitura e gravação ao dono, e execução ao grupo para o arquivo documento.txt. note que somente quem tem permissão pode executar este comando (root ou dono do arquivo).

2) chmod 610 documento.txt - define permissão de leitura e gravação ao dono (4+2 = rw), execução para o grupo (1=x), e nenhuma permissão para qualquer outro usuário (zero). Importante notar que difere do exemplo anterior, pois na notação textual as permissões podem ser "adicionadas" às atuais, enquanto que na notação octal, o comando define a permissão do arquivo.

3) chmod +x binário.sh - concede permissão de execução (+x) de binário.sh para todos os usuários do sistema (caso não seja especificado o usuário, a permissão é concedida/retirada de todos - equivalente ao parâmetro a+x.

4) chmod -reference=documento.txt documento2.txt - aplica as mesmas permissões de documento.txt para documento2.txt.

5) chmod -R ug=rw,o=r testes/ - concede permissão de leitura e gravação ao dono e ao grupo, e permissão de leitura a outros, para o diretório testes e todos os arquivos ou sub-diretórios contidos dentro dele.

6) chown - permite a alteração do dono e do grupo relacionado ao arquivo, ou arquivos selecionados. Um usuário comum pode alterar o grupo de um arquivo caso seja membro tanto do grupo de origem quanto do grupo de destino. Porém, por motivos de segurança, apenas o super-usuário (root) pode alterar o dono de um arquivo.

Principais opções:

chown [novo_proprietário][:novo_grupo] arquivo/diretório
-R Permite que se altere recursivamente o proprietário e o grupo do(s) arquivo(s).
--reference=arquivo O arquivo usará o grupo configurado para o arquivo especificado.


Exemplos:



Altera o grupo de arquivo.txt para eduardo. Note que se o usuário não tiver permissões suficientes, será mostrada uma mensagem de erro.



Altera o dono do arquivo arquivo2.txt para eduardo e o grupo para eduardo. Lembre-se que apenas o superusuário (root) pode realizar esta alteração.



Modifica o grupo do diretório dados/ e de todos o seu conteúdo para eduardo.

chgrp

Altera apenas o grupo para os arquivos ou diretórios indicados. Um usuário comum pode alterar o grupo de um arquivo caso ele pertença tanto ao grupo de origem como ao grupo de destino. O super-usuário (root) pode alterar o grupo do arquivo para qualquer grupo válido no sistema.

É equivalente ao comando "chown" somente com o parâmetro :grupo (ou seja, sem modificar o dono do arquivo, somente o grupo).

Principais opções:

chgrp [ opções ] arquivo(s)
-R Permite que se altere recursivamente a propriedade de grupo de diretórios e seu conteúdo.
--reference=arquivo Permite que o comando use o grupo configurado para "arquivo" para configurar outros grupos.
-c Descreve detalhadamente a ação para cada arquivo cuja propriedade de grupo está sendo alterada.
-f Força a mudança de grupo, sem relatório de erros.


Exemplos:

1) chgrp coisas texto1 texto 2 imagens/ - modifica o grupo associado aos arquivos texto1 texto2 e ao diretório imagens, associando-os ao grupo coisas. Note que o usuário deverá ter as permissões suficientes para esta modificação, caso contrário será mostrada uma mensagem de erro.

2) chgrp -R empregados comercial/ - modifica o grupo associado ao diretório comercial e todos os seus arquivos e sub-diretórios, associando-os ao grupo empregados.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Verificando permissões
   3. Modos Octal e Textual
   4. Modificando proprietários e grupos
   5. Permissões padrão (umask)
   6. Permissões em diretórios
   7. Permissões especiais
   8. Conclusão
Outros artigos deste autor

Redes PLC

Trabalhando com RPM

Utilizando o alien para a conversão de pacotes

Prompt Bash avançado

Bluefish - um poderoso editor para web designers

Leitura recomendada

Guia Openbox

Questão de LPIC - Manipulação de dispositivos

Leve introdução às linguagens de programação

Instalei o Ubuntu! E agora?

Usando o "at" para agendamento de tarefas

  
Comentários
[1] Comentário enviado por grandmaster em 14/07/2008 - 12:37h

Parabens pelo artigo, está muito bem explicado.

Vale a leitura para quem tem dificuldade em lidar com o esquema de permissões.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[2] Comentário enviado por iz@bel em 14/07/2008 - 12:47h

Isso é que eu achamo de "Tutorial Completo"...
Já ta nos meus favoritos ;D
Parabéns!

[3] Comentário enviado por paulo.neto em 14/07/2008 - 13:19h

Este artigo é quase uma cópia fiel do capítulo de Administração de Sistemas da apostila do curso oficial da Mandriva.

[4] Comentário enviado por foguinho.peruca em 15/07/2008 - 11:00h

Olá!

Gostei do tutorial. Bem completo e didático. Parabéns. Nota 10!

Só uma coisinha:
deve ter passado pela equipe da moderação. Achei um errinho de português no texto:

"Por padrão, quando um usuário é criado, é criado um grupo com o mesmo dome de usuário. É possível visualizar estar informações com o comando "id"."

Onde "dome", acredito eu, seja "nome".

[]'s
Jeff

[5] Comentário enviado por pink em 15/07/2008 - 13:59h

Caro Eduardo/vodooo, parabéns pelo ótimo artigo! 10.
Muito didático, eu já conhecia o conceito das permissões, mas a forma como você descreveu está impecável, você teve uma simplicidade ao explicar um tema tão pouco discutido, para um leigo este esclarecimento é muito importante....
Parabéns novamente, obrigada pela contribuição.
Fique com Deus,
Michele

[6] Comentário enviado por drc em 24/07/2008 - 15:10h

sou iniciante no mundo linux. Gostei muito pois está muito bem explicado.
Parabéns

[7] Comentário enviado por vodooo em 28/01/2009 - 08:33h

Obrigado a todos pelos elogios.

Abraços a todos.

[8] Comentário enviado por wos- em 22/02/2010 - 18:53h

excelente artigo, parabéns!
me ajudou bastante, agora é praticar


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts