Permissão de arquivos (CHMOD)

Todo arquivo ou pasta tem seu conteúdo e seu nome visível para qualquer usuário.

Mas além disso eles tem um dono e permissões de arquivos que podem ser vistos nas propriedades do arquivo ou da pasta.

Uma outra forma de visualizar a permissão do arquivo é pelo FTP ou digitando o comando abaixo no terminla do seu Linux:

[sourcecode language=’bash’]ls -l[/sourcecode]

Que teria mais ou menos esse resultado:

-rw-r–r– 1 surrealad surrealad 2267 2011-04-14 18:39 insertLogo.php
drwxr-xr-x 2 surrealad surrealad   69 2011-05-26 14:47 npub/
-rw-r–r– 1 surrealad surrealad 2749 2011-03-09 15:52 pictogramaBranco.png
-rw-r–r– 1 surrealad surrealad 2545 2011-03-09 15:52 pictogramaPreto.png

A primeira, a terceira e a quarta linha são arquivos e a segunda um diretórios. Sabemos disso pela letra d no começo da segunda linha.

Se fossemos ver esses arquivos no FTP eles teriam a permissão 755 para a pasta e 644 para os arquivos.

Isso porque no FTP a permissão é representada em números e no terminal do Linux ou SSH ela é representada em letras.

Essa representação da permissão é dividida em 3 partes que são:

1 – Permissão para o dono ou usuário
2 – Permissão para usuários do mesmo grupo
3 – Permissão para todos os usuários

Cada número (para o FTP) ou letra (para o terminal do Linux ou SSH) significa um tipo de permissão, que são:

0 : — (nenhuma permissão)
1 : –x (somente execução)
2 : -w- (somente escrita)
3 : -wx (escrita e execução)
4 : r– (somente leitura)
5 : r-x (leitura e execução)
6 : rw- (leitura e escrita)
7 : rwx (leitura, escrita e execução)

Algumas vezes, acontece de um usuário colocar permissão 777 para todos os arquivos e pastas de seu site e isso não é seguro.

A permissão 777 só deve ser utilizada em pastas que terão seu conteúdo alterado, como pastas de upload ou de cache por exemplo.

Utilizando de um bom cliente FTP como o FileZilla, você pode “rapidamente” corrigir isso, pois ele te dar a opção de aplicar a mesma permissão às subpastas e/ou arquivos das subpastas.

Já no linux isso é um pouco diferente, embora você possa diferenciar arquivos de pastas pelo comando o CHMOD não pode.

Para isso, você precisará da ajuda do comando find e do xargs.

Use este comando para mudar a permissão de todos os arquivos daquela pasta:

[sourcecode language=’bash’]find -type f | xargs -i chmod 644 {}[/sourcecode]

Use esse comando para aplicar a permissão apenas para a pasta e as subpastas:

[sourcecode language=’bash’]find -name ‘*’ -type d | xargs -i chmod 755 {}[/sourcecode]

Basicamente é isso.

Já da pra brincar um pouco ou sair de uma furada.

Uma resposta

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Precisa de ajuda com algo relacionado a este assunto?

Me chama no WhatsApp que eu posso te ajudar!

Fale no WhatsApp

Antes só me fala seu nome e WhatsApp