Alterando permissoes de arquivos e recomendacoes para WordPress em um sistema Linux
Para fortalecer sua instalacao WordPress, ter o conjunto recomendado de permissoes de arquivos e importante. Abaixo estao algumas recomendacoes sobre isso, reunidas pela web.
Primeiro, temos um breve resumo das recomendacoes:
# redefinir para padroes seguros find /usr/share/wordpress -exec chown www-data:www-data {} \; find /usr/share/wordpress -type d -exec chmod 755 {} \; find /usr/share/wordpress -type f -exec chmod 644 {} \; # permitir que o wordpress gerencie wp-config.php (mas impedir acesso mundial) chgrp www-data /usr/share/wordpress/wp-config.php chmod 660 /usr/share/wordpress/wp-config.php # permitir que o wordpress gerencie .htaccess chgrp www-data /usr/share/wordpress/.htaccess chmod 664 /usr/share/wordpress/.htaccess # permitir que o wordpress gerencie wp-content find /usr/share/wordpress/wp-content -exec chgrp www-data {} \; find /usr/share/wordpress/wp-content -type d -exec chmod 775 {} \; find /usr/share/wordpress/wp-content -type f -exec chmod 664 {} \;
Isso e principalmente para aqueles que estao com pressa e so querem ir direto ao ponto. Basicamente, voce esta tentando limitar quem pode fazer o que no seu servidor web. Abaixo estao as instrucoes do wordpress.org sobre como gerenciar permissoes em mais detalhes:
Obtido de: http://codex.wordpress.org/Changing_File_Permissions
Em sistemas de arquivos de computador, diferentes arquivos e diretorios tem permissoes que especificam quem e o que pode ler, escrever, modificar e acessa-los. Isso e importante porque o WordPress pode precisar de acesso para escrever em arquivos no seu diretorio wp-content para habilitar certas funcoes.
Modos de Permissao
7 5 5
user group world
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755
O modo de permissao e calculado somando os seguintes valores para o usuario, o grupo do arquivo e para todos os outros. O diagrama mostra como.
- R ead (Leitura) 4 - Permitido ler arquivos
- W rite (Escrita) 2 - Permitido escrever/modificar arquivos
- eX ecute (Execucao) 1 - Ler/escrever/deletar/modificar/diretorio
Exemplos de Modos de Permissao
| Veja lista completa de 0000 a 0777. Modo | Permissoes | Explicacao |
|---|---|---|
| 0477 | -r—rwxrwx | proprietario tem somente leitura (4), outros e grupo tem rwx (7) |
| 0677 | -rw-rwxrwx | proprietario tem rw apenas (6), outros e grupo tem rwx (7) |
| 0444 | -r—r—r— | todos tem somente leitura (4) |
| 0666 | -rw-rw-rw- | todos tem apenas rw (6) |
| 0400 | -r-------- | proprietario tem somente leitura (4), grupo e outros nao tem permissao (0) |
| 0600 | -rw------- | proprietario tem apenas rw, grupo e outros nao tem permissao |
| 0470 | -r—rwx--- | proprietario tem somente leitura, grupo tem rwx, outros nao tem permissao |
| 0670 | -rw-rwx--- | proprietario tem apenas rw, grupo tem rwx, outros nao tem permissao |
Esquema de Permissoes para WordPress
As permissoes serao diferentes de host para host, entao este guia detalha apenas os principios gerais. Este guia se aplica a servidores executando uma configuracao padrao (nota, para hospedagem compartilhada usando metodos “suexec”, veja abaixo).
Tipicamente, todos os arquivos devem ser de propriedade da sua conta de usuario (ftp) no seu servidor web e devem ser graviveis por essa conta. Em hosts compartilhados, os arquivos nunca devem ser de propriedade do proprio processo do servidor web (as vezes e www, ou apache, ou nobody).
Qualquer arquivo que precise de acesso de escrita pelo WordPress deve ser de propriedade ou propriedade de grupo da conta de usuario usada pelo WordPress (que pode ser diferente da conta do servidor). As permissoes de arquivo e pasta do WordPress devem ser as mesmas para a maioria dos usuarios, dependendo do tipo de instalacao que voce realizou.
NOTA: Se voce mesmo instalou o WordPress, provavelmente nao precisa modificar as permissoes de arquivo. A menos que esteja tendo problemas com erros de permissao, ou queira, provavelmente nao deve mexer nisso.
/
|- index.php
|- wp-admin
| `- wp-admin.css
|- wp-blog-header.php
|- wp-comments-post.php
|- wp-commentsrss2.php
|- wp-config.php
|- wp-content
| |- cache
| |- plugins
| |- themes
| `- uploads
|- wp-cron.php
|- wp-includes
`- xmlrpc.php
Hospedagem Compartilhada com suexec
O acima pode nao se aplicar a sistemas de hospedagem compartilhada que usam a abordagem “suexec” para executar binarios PHP. Esta e uma abordagem popular usada por muitos hosts web. Para esses sistemas, o processo php e executado como o proprietario dos proprios arquivos php, permitindo uma configuracao mais simples e um ambiente mais seguro para o caso especifico de hospedagem compartilhada.
Nessa configuracao suexec, o esquema de permissoes correto e simples de entender.
- Todos os arquivos devem ser de propriedade da conta real do usuario, nao da conta de usuario usada para o processo httpd.
- Todos os diretorios devem ser 755 ou 750.
- Todos os arquivos devem ser 644 ou 640. Excecao: wp-config.php deve ser 600 para evitar que outros usuarios no servidor o leiam.
- Nenhum diretorio deve receber 777, mesmo diretorios de upload.
Usando um Cliente FTP
Clientes FTP permitem que voce defina permissoes para arquivos e diretorios no seu host remoto. Essa funcao e frequentemente chamada de chmod ou set permissions no menu do programa.
Usando a Linha de Comando
Se voce tiver acesso shell/SSH a sua conta de hospedagem, pode usar chmod para alterar as permissoes de arquivo, que e o metodo preferido para usuarios experientes. Antes de comecar a usar chmod, seria recomendavel ler alguns tutoriais para ter certeza de que entende o que pode alcancar com ele. Definir permissoes incorretas pode tirar seu site do ar, entao tome seu tempo.
Voce pode fazer todos os arquivos no seu diretorio wp-content graviveis em dois passos, mas antes de tornar cada arquivo e pasta gravivel, voce deve primeiro tentar alternativas mais seguras como modificar apenas o diretorio. Tente cada um desses comandos primeiro e se nao funcionarem, entao va para recursivo. Substitua DIR pela pasta na qual voce quer escrever:
chmod -v 746 DIR
chmod -v 747 DIR
chmod -v 756 DIR
chmod -v 757 DIR
chmod -v 764 DIR
chmod -v 765 DIR
chmod -v 766 DIR
chmod -v 767 DIR
Se esses falharem em permitir que voce escreva, tente todos novamente na ordem, mas desta vez substitua -v por -R, que mudara recursivamente cada arquivo localizado na pasta. Se apos isso voce ainda nao conseguir escrever, agora pode tentar 777.
Sobre o Chmod
chmod e um comando unix que significa “change mode” (mudar modo) em um arquivo. O flag -R significa aplicar a mudanca a cada arquivo e diretorio dentro de wp-content. 766 e o modo para o qual estamos mudando o diretorio, significa que o diretorio e legivel e gravivel pelo WordPress e por todos os outros usuarios no seu sistema.
Se voce usar Permalinks, tambem deve mudar as permissoes do .htaccess para garantir que o WordPress possa atualiza-lo quando voce alterar configuracoes como adicionar uma nova pagina, redirecionamento, categoria, etc.
- Va para o diretorio principal do WordPress
- Digite
chmod -v 666 .htaccess
NOTA: Do ponto de vista de seguranca, ate uma pequena quantidade de protecao e preferivel a um diretorio gravivel por todos. Comece com configuracoes de baixa permissao como 744, subindo ate funcionar. So use 777 se necessario, e esperancosamente apenas por um periodo temporario.
Os perigos do 777
7 7 7
user group world
r+w+x r+w+x r+w+x
4+2+1 4+2+1 4+2+1 = 777
Frequentemente o servidor Apache e ‘propriedade’ das contas de usuario dhapache ou nobody. Essas contas tem uma quantidade limitada de acesso a arquivos no servidor, por uma boa razao. Ao configurar seus arquivos e pastas pessoais de propriedade da sua conta de usuario como Graviveis por Todos, voce esta literalmente tornando-os graviveis por todos. Agora os usuarios dhapache e nobody que executam seu servidor, servindo paginas, executando interpretadores php, etc., terao acesso total aos arquivos da sua conta de usuario.
O Pior Cenario
O pior que pode acontecer como resultado do uso de permissoes 777 em uma pasta ou ate um arquivo e que se um cracker malicioso conseguir enviar um arquivo perigoso ou modificar um arquivo atual para executar codigo, eles terao controle completo sobre seu blog, incluindo informacoes do banco de dados e senha.
Encontre uma Alternativa
Geralmente e bem facil ter os recursos aprimorados fornecidos pelos impressionantes plugins WordPress disponiveis, sem se colocar em risco. Contate o autor do plugin ou o suporte do seu servidor e solicite uma alternativa.
Encontrando Permissoes de Arquivo Seguras
O arquivo .htaccess e um dos arquivos que e acessado pelo proprietario do processo executando o servidor. Entao, se voce definir as permissoes muito baixas, seu servidor nao conseguira acessar o arquivo e causara um erro. Nisso reside o metodo para encontrar as configuracoes mais seguras. Comece muito restritivo e aumente as permissoes ate funcionar.
Exemplo de Configuracoes de Permissao
Permissoes padrao (umask 022):
644 -rw-r--r-- /home/user/wp-config.php
644 -rw-r--r-- /home/user/cgi-bin/.htaccess
644 -rw-r--r-- /home/user/cgi-bin/php.ini
755 -rwxr-xr-x /home/user/cgi-bin/php.cgi
755 -rwxr-xr-x /home/user/cgi-bin/php5.cgi
Permissoes seguras:
600 -rw------- /home/user/wp-config.php
604 -rw----r-- /home/user/cgi-bin/.htaccess
600 -rw------- /home/user/cgi-bin/php.ini
711 -rwx--x--x /home/user/cgi-bin/php.cgi
100 ---x------ /home/user/cgi-bin/php5.cgi