Lendo as permissões dos arquivos Linux

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

[ Hits: 103.405 ]

Por: Luiz Alberto em 29/09/2010


Lendo parte da saída do comando "ls -l"



A saída do comando ls (formato longo) é apresentada em formato de colunas.

Para os propósitos deste artigo, considere os campos abaixo:
Compare com a imagem abaixo:
Na próxima imagem:
Há ocorrência, na primeira coluna, dos tipos:
Para os propósitos deste artigo, vamos convencionar os tipos como sendo apenas arquivos e diretórios.

Ao executar o comando ls com a opção -l temos a saída na imagem abaixo.

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.
Considerando o s diretórios, as opções que ocorrem nas colunas (variando da segunda a décima posição) referem-se as permissões para listar [r], modificar [w] e acessar [x] para o dono, grupo e outros, respectivamente.

A permissão de leitura (r) habilita a ação de ler um arquivo. Quando definido para um diretório, esta permissão habilita o potencial de listar (r) os arquivos contidos no diretório.

A permissão de escrita (w) concede o potencial de editar um arquivo. Quando definido para um diretório, esta permissão atribui a habilidade de modificar (w) as entradas no diretório. Isso inclui as propriedades de criar, remover e renomear arquivos.

A permissão de execução (x) concede a prerrogativa de executar um arquivo. Esta permissão deve ser definida para os binários executáveis, por exemplo, um código compilado em Linguagem C ou um Shell Script. Quando definido para um diretório, 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). Porém sem garantir a propriedade para editar e executar arquivos (a menos que estas ações estejam definidas).

    Próxima página

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

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

OpenSSH - Debian Lenny - CentOS 5.5 - Slackware 13.1

Montando, monitorando e gerando logs dos compartilhamento NFS automaticamente

Leitura recomendada

Como um monte de letras de um código fonte transforma-se em voltagens?

Instalando seu Debian Sarge (Parte I)

Implementando um Servidor Web Java com Tomcat no Debian

Variáveis padrão para usar em seus scripts em shell

Finalmente consegui tirar o Windows do meu computador!

  
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