Lendo as permissões dos arquivos Linux

Neste artigo veremos como ler as permissões dos arquivos e diretórios no Linux.

[ Hits: 104.615 ]

Por: Luiz Alberto em 29/09/2010


Lendo a forma octal



Vamos entender a leitura da forma octal aplicada em arquivos e diretórios.

Em arquivos:
Em diretórios:
Um detalhe sobre permissões de arquivos:

Para executar um arquivo (um shell script) exige-se a permissão de leitura do arquivo. É impossível executar um script sem poder lê-lo.

Ilustrando:

Considere a imagem abaixo. Vamos interpretar as permissões.
O usuário user pode editar [escrever (w)] e executar (x) o arquivo script. Ao tentar executar o arquivo script, veja na imagem abaixo o que ocorre.
E não poderia ser diferente. Como seria possível executar um script sem permissão de ler o script?

Agora vamos tentar editar o conteúdo do arquivo script. Aqui a tentativa foi com o editor vim.

Veja o comando na imagem abaixo; foi digitado (vim script + <ENTER>):
A resultante é: Permissão negada.
Como seria possível editar um arquivo sem a permissão de lê-lo?

Veremos alguns exemplos e faremos a interpretação e a filtragem do que faz sentido num sistema unix-like.

Para entender a forma octal considere as operações de soma num conjunto P cujos elementos são: 0, 1, 2 e 4. Seja P = {0, 1, 2, 4}.

Operação 1:

Aplicado a arquivos:

Somar o elemento 4 com o elemento 2 e o elemento 1 (Fazer a conta 4 + 2 + 1). Lembrando que:
  • 4 = Permissão de Leitura(r)
  • 2 = Permissão de Escrita (w)
  • 1 = Permissão de Execução (x)
  • 7 = Permissão de Leitura (r) + Permissão de Escrita (w) + Permissão de Execução (x)

Interpretando:

O número 7 (quando aplicado a arquivos) representa: Permissão de Leitura + Permissão de Escrita + Permissão de Execução. 7 é a adição do elemento 4 com o elemento 2 e o elemento 1.

Aplicado a diretórios:

Somar o elemento 4 com o elemento 2 e o elemento 1 (fazer a conta 4 + 2 + 1). Lembrando que:
  • 4 = Permissão de Listar (r)
  • 2 = Permissão de Modificar (w)
  • 1 = Permissão de Acessar (x)
  • 7 = Permissão de Listar (r) + Permissão de Modificar (w) + Permissão de Acessar (x)

Interpretando:

O número 7 (quando aplicado a diretórios) representa: Permissão de Acessar + Permissão de Listar + Permissão de Modificar.

Operação 2:

Aplicado a arquivos:

Somar o elemento 4 com o elemento 2 (fazer a conta 4 + 2). Lembrando que:
  • 4 = Permissão de Leitura (r)
  • 2 = Permissão de Escrita (w)
  • 6 = Permissão de Leitura (r) + Permissão de Escrita (w)

Interpretando:

O número 6 representa: Permissão de Leitura + Permissão de Escrita. 6 é a adição do elemento 4 com o elemento 2.

Aplicado a diretórios:

Somar o elemento 4 com o elemento 2 (fazer a conta 4 + 2). Lembrando que:
  • 4 = Permissão de Listar (r)
  • 2 = Permissão de Modificar (w)
  • 6 = Permissão para Listar (r) + Permissão para Modificar (w)

Cuidado:

A potencialidade de Listar (r) e Modificar (w) o diretório depende da disponibilidade da Permissão para Acessar o diretório.

Ilustrando:

Na imagem abaixo foi executado o comando "ls -ld titãs/". A saída mostrou as permissões liberadas para acesso ao diretório titãs para o dono do arquivo, para os usuários pertencentes ao grupo user e para outros.
Na sequência foi executado o comando "ls -l" para listar o conteúdo do diretório titãs e depois foi executado o comando "cd titãs" (para acessar o diretório titãs). Observa-se que os arquivos listados apresentam permissões somente para o usuário user [o dono dos arquivos].

A seguir foi utilizado o comando "su beto" para substituir o usuário user pelo usuário beto e executou-se o comando "ls -l" (como usuário beto). A resultante:

ls: impossível abrir a pasta .: Permissão negada
Operação 3:

Aplicando a arquivos:

Somar o elemento 4 com o elemento 1 (fazer a conta 4 + 1). Lembrando que:
  • 4 = Permissão de Leitura (r)
  • 1 = Permissão de Execução (x)
  • 5 = Permissão de Leitura (r) + Permissão de Execução (x)

Interpretando: O número 5 (quando aplicado a arquivos) representa: Permissão de Leitura + Permissão de Execução. 5 é a adição do elemento 4 com o elemento 1.

Aplicado a diretórios:

Somar o elemento 4 com o elemento 1 (fazer a conta 4 + 1). Lembrando que:
  • 4 = Permissão para Acessar (x)
  • 1 = Permissão para Listar (r)
  • 5 = Permissão para Listar (r) + Permissão de Acessar (x)

Interpretando:

O número 5 (quando aplicado a diretórios) representa: Permissão para Acessar + Permissão para Listar.

É isso. No próximo artigo veremos como alterar as permissões dos arquivos.

Página anterior    

Páginas do artigo
   1. Lendo parte da saída do comando "ls -l"
   2. Lendo a forma octal
Outros artigos deste autor

Montando, monitorando e gerando logs dos compartilhamento NFS automaticamente

OpenSSH - Debian Lenny - CentOS 5.5 - Slackware 13.1

Virtualização dos sistemas operacionais: CentOS, Debian, Slackware e Ubuntu

Leitura recomendada

Docker - Da virtualização a aplicações distribuídas

Como escolher sua distro (de forma imparcial)

Introdução ao Void Linux

Mageia 6 - 6 dicas de pós-instalação

Lógica para computação - parte II

  
Comentários
[1] Comentário enviado por beneskate em 29/09/2010 - 15:33h

Artigo de muita ajuda pra quem tá começando no linux, pois trabalhar com permissões é meio complicado.... Parabéns!!!

[2] Comentário enviado por gambin.br em 29/09/2010 - 16:22h

Olá Luiz,

Artigo realmente muito importante, pois pra quem é iniciante (ou não) é facil se perder no meio de 10 caracteres para identificar as permissões do arquivo!
Apenas uma observação: os valores r (read) e w (write) estão trocados na tabela.

Flw!

[3] Comentário enviado por nildopd em 29/09/2010 - 22:13h

putz.... tava procurando isso.....

muito obrigado ai maninho.... muito bom mesmo...


grande abraço

[4] Comentário enviado por davidsonpaulo em 30/09/2010 - 09:34h

"esta permissão atribui a ação de acessar (x) o diretório, com pelo menos a propriedade de listar (sem essa prerrogativa não faria sentido acessar um diretório)"

Errado. É possível dar permissão de acessar um diretório sem permissão de ver seu conteúdo, e isso faz bastante sentido. :-)

Considere a seguinte situação (baseada em um caso verífico): um provedor precisa armazenar dados de todos os seus clientes em uma área comum, mas não quer que um cliente sequer tenha conhecimento da existência de dados de outros clientes. Então, ele cria o diretório /share tendo como donos o usuário root e o grupo users e tendo as permissões 0710. Dentro desse diretório existem os diretórios dos usuários, como /share/cliente1 e /share/cliente2, por exemplo, com as permissões definidas de forma que somente seus proprietários possam acessá-los.

Com essa configuração, o cliente1 poderá executar "cd /share/cliente1" e visualizar seus arquivos, porém, se executar "ls /share" receberá um erro de permissão negada, ficando assim sem ter como saber quais os nomes dos outros diretórios que estão lá dentro.

Portanto, um diretório pode sim ter permissão de acesso (x) sem ter permissão de leitura (r).

[5] Comentário enviado por souza889 em 30/09/2010 - 14:23h

albathross

O assunto do artigo é interessante mas me corrija se eu estiver vendo demais, mas a primeira imagem "Tabela" está citando r = escrita e w = leitura, estas atribuições estão invertidas.

r = leitura
w= escrita
x= execução


Na descrição abaixo as imagens está correto.
"Considerando os arquivos abaixo listados, as opções que ocorrem nas colunas (variando da segunda a décima posição) referem-se as permissões de leitura[r], escrita[w] e execução[x] para o dono, grupo e outros, respectivamente. "

Se um iniciante ler este artigo pode ficar confuso com estas informações.

Abraço

[6] Comentário enviado por albathross em 30/09/2010 - 14:52h

souza889

...é verdade na imagem as atribuições estão invertidas. Vou entrar em contato com o suporte para muidar isso.

Luiz Alberto

[7] Comentário enviado por maran em 30/09/2010 - 16:21h

Bom o artigo, e concordo plenamente com o Davidson,
a um tempo atras fiz um artigo do genero, caso queiram dar uma espiada:

http://www.vivaolinux.com.br/artigo/Leia-grave-e-execute/?pagina=1

Belo trabalho,
Um abraço

[8] Comentário enviado por mcnd2 em 30/09/2010 - 19:49h

Muito bom o artigo.

Definindo corretamento quem pode ter acesso, escrever e executar o arquivo é a melhor maneira de protegermos os dados confidencias.

[9] Comentário enviado por miguel arcanjo3 em 04/10/2010 - 02:41h

Grande artigo Cara, muito esclarecedor.

[10] Comentário enviado por nicolo em 06/10/2010 - 15:48h

Podia ter explicado para a galera como usar isso no command line.
Ficou no caminho.

[11] Comentário enviado por xerxeslins em 06/10/2010 - 23:42h

Parabéns! Abordou de forma bem legal um assunto básico, mas muito importante! Todo usuário Linux deveria saber isso. =)

[12] Comentário enviado por mophilos em 08/10/2010 - 11:34h

Muito bom.....................................................


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts