Este assunto pode ser um pouco complexo, mas ele é voltado apenas para quem encontrou algum problema para trabalhar com arquivos no servidor a partir do WordPress ou outro programa de CMS semelhante.
Como sempre, sugiro dar uma olhada nos links, espalhados pelo texto ou nas referências (ao final), caso queira obter mais ajuda sobre o tema.
As permissões precisam ser dadas na medida do necessário. Nada além disso.
Para contextualizar, o post é baseado em um servidor LAMP, com um blog WordPress instalado em uma máquina Debian 9 Stretch. Obtive os mesmos resultados ao testar no Ubuntu 12.04 LTS.
Este tipo de ajuste pode ser necessário após a instalação do WordPress, do Piwigo e outros aplicativos web, que precisam fazer alterações dentro dos subdiretórios em que foram instalados:
- atualizar automaticamente seus arquivos para novas versões,
- atualizar ou instalar novos plugins,
- permitir que você realize o upload de arquivos (imagens, por exemplo) de dentro do próprio aplicativo etc.
Pode haver dificuldades para fazer upload via FTP, a partir do aplicativo, se as permissões do diretório em que ele se encontra instalado (ou o /var/www) no servidor não forem adequadas.
Ao tentar instalar um plugin ou fazer a atualização de qualquer elemento do WordPress, ele irá pedir informações da conexão (connection information) FTP, caso as permissões não estejam corretamente ajustadas no servidor.
A que grupos e usuários os arquivos do WordPress devem pertencer?
Em um servidor particular ou doméstico, que apenas você irá usar, é comum transferir todos os arquivos do /var/www para o seu nome de usuário.
Se este não for o caso, a sugestão é transferir todos os arquivos para a posse do www-data (user e group). Em seguida, inscreva o seu usuário no grupo www-data.
Veja como:
adduser nomedousuario www-data
cd /var/www
chown -Rv www-data:www-data /var/www/
chmod -Rv g+rw /var/www/
Os comandos, acima, foram executados como root.
O que foi feito:
- O comando adduser foi usado para inscrever o usuário ‘nomedousuario’ no grupo www-data.
- Entrou no diretório /var/www.
- O comando chown (change owner) atribuiu, recursivamente, os arquivos contidos em /var/www para o usuário e grupo www-data.
- O comando chmod (change mode) atribuiu permissões de leitura (r) e escrita (w) aos arquivos, para os grupos a que pertencem.
Com isto já será possível fazer alterações no diretório através do WordPress ou outros aplicativos instalados.
Permissões padrão para o WordPress
Se antes, havíamos estabelecido as permissões genéricas, agora, vamos nos concentrar nas que estão relacionadas ao WordPress.
Como já foi abordado, o WordPress não grava apenas informações (de texto) no banco de dados.
O aplicativo também precisa ter permissões de escrita nos subdiretórios em que foi instalado, para poder armazenar diversos tipos de conteúdo, como as imagens.
O único ponto que torna o assunto “permissões de acesso” complexo é a segurança.
Queremos que o aplicativo execute suas funções adequadamente — mas não queremos que pessoas de fora tenham acesso irrestrito aos nossos arquivos.Como é que se encontra um equilíbrio seguro e funcional para esta questão?
O importante, aqui, é que o www-data tenha permissões rw, ou seja, de leitura (read) e escrita (write) sobre todos os seus arquivos.
Se você tem interesse em saber mais sobre o tema, leia sobre permissões de arquivos no Linux.
2 replies on “As permissões ideais para o diretório /var/www no seu servidor web”
Agradeço pelo conteúdo e o conhecimento compartilhado. Com isso eu posso deixar as pastas do wordpress com as permissões originais que nao afetou a seguranca do site? obrigado.
As permissões originais do WordPress são seguras. Os argumentos do post são apenas para quem está tendo problemas específicos.