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
Muito bom.. o filezilla já tem 3 opções pra salvar nossa vida.
Abs.