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