Articles

Permissões WordPress – Como Configurar Sistemas de Arquivos e Propriedades Adequados

  • 12 min read
  • WordPress,Servidores,Segurança,Técnicas (WP)
  • Salvado para leitura offline
  • Partilhar no Twitter, LinkedIn

>

>

>

>

>

Quando as pessoas falam sobre segurança do WordPress, as permissões de arquivo e propriedade são geralmente a última coisa em suas mentes. A instalação de plugins de segurança é uma boa prática e uma obrigação para todos os sites WordPress. Entretanto, se as permissões do seu sistema de arquivos não forem configuradas corretamente, a maioria das suas medidas de segurança podem ser facilmente contornadas por intrusos.

Quando as pessoas falam sobre segurança do WordPress, permissões de arquivos e propriedade são geralmente a última coisa em suas mentes. Instalar plugins de segurança é uma boa prática e uma obrigação para todos os sites WordPress. Entretanto, se suas permissões de sistema de arquivos não forem configuradas corretamente, a maioria de suas medidas de segurança podem ser facilmente contornadas por intrusos.

wordpress permissions

Permissões e propriedade são bastante importantes nas instalações do WordPress. Configurá-las corretamente em seu servidor Web deve ser a primeira coisa que você deve fazer depois de instalar o WordPress. Ter o conjunto errado de permissões pode causar erros fatais que acabam com o seu site. Permissões erradas também podem comprometer o seu site e torná-lo propenso a ataques.

Leitura adicional no SmashingMag:

  • O que fazer quando o seu site cair
  • Como manter o seu fluxo de trabalho de codificação organizado
  • Como descobrir porque o seu site parou de funcionar
  • 9 Passos para uma relação feliz com o seu provedor de hospedagem

Para além das preocupações de segurança, uma série de outros problemas podem derivar de ter o conjunto errado de permissões e propriedade. Você já encontrou uma tela branca em branco ao tentar carregar o seu site pela primeira vez? Ou você já recebeu mensagens de erro ao tentar carregar imagens no uploader de mídia? Corrigindo permissões e propriedade de seus arquivos e pastas, muitas vezes corrige estes tipos de problemas.

Neste artigo, vamos ensinar-lhe tudo sobre permissões e propriedade do sistema de arquivos WordPress: o que eles são, por que eles são importantes e como configurá-los. Você vai aprender alguns princípios básicos que eu sigo para manter meu sistema de arquivos intacto. Também vamos cobrir as duas configurações mais comuns do servidor WordPress. Explicaremos como elas diferem e, mais importante, como definir as permissões e a propriedade adequadas para cada.

Terminal Vs. Cliente FTP

Durante o curso deste artigo, nós estaremos usando o terminal para mudar as permissões e a propriedade. Porque não usar um cliente FTP em vez disso? A razão é que o FTP é um pouco limitado para as nossas necessidades. O FTP pode ser usado para transferir arquivos e alterar permissões de arquivos e pastas, mas não pode ser usado para alterar as configurações de propriedade.

Para executar os comandos listados neste artigo, você terá que estar logado em seu servidor usando o comando SSH. Se não está familiarizado com o terminal e SSH, pode aprender sobre eles no artigo “Introdução aos Comandos do Linux”

Utilizadores e Grupos

Acima de tudo, precisamos de falar rapidamente sobre o que são utilizadores e grupos, porque estes andam de mãos dadas ao definir permissões.

Para simplificar, um utilizador é uma conta que tem acesso ao computador, e um grupo é apenas um identificador para um certo conjunto de utilizadores. Isto significa que cada vez que você transfere arquivos usando FTP, você está usando uma conta de usuário no seu servidor. E dependendo de como seu host configurou sua conta, você (o usuário) pode pertencer a um ou mais grupos. Os usuários e grupos são como usuários e funções no WordPress. Ambos são conceitualmente os mesmos, exceto que o primeiro é usado em seu servidor.

Usuários e grupos são importantes porque eles ajudam a identificar privilégios para todos os nossos arquivos e pastas. Os proprietários de um arquivo normalmente teriam privilégios totais sobre ele; outros usuários que pertencem ao mesmo grupo teriam menos privilégios sobre ele; enquanto todos os outros poderiam não ter privilégios sobre ele. Esses privilégios são o que chamamos de permissões.

O que são permissões de arquivo?

Permissões ditam o que os usuários podem fazer com um arquivo. Uma permissão é representada por um conjunto de números, tais como 644 ou 777, referido como um modo de permissão. Se você já usou plugins no WordPress antes, então o mais provável é que você tenha sido solicitado por alguns deles para alterar as permissões de um arquivo ou diretório porque o plugin não pode escrever para ele. Ao alterar as permissões do arquivo, você está permitindo que o servidor Web tenha acesso a esse arquivo ou pasta.

Pense num modo de permissão como um conjunto de declarações “quem pode fazer o quê”, em que cada dígito corresponde à parte “quem” da declaração:

  • Primeiro dígito. O que o usuário da conta que possui o arquivo pode fazer
  • Segundo dígito. O que o usuário da conta que possui o arquivo pode fazer
  • Terceiro dígito. O que as contas de usuário de todos os outros (incluindo visitantes do site) podem fazer

Próximo, o número corresponde à parte “o quê” do extrato e é a soma de uma combinação de quaisquer destes dígitos:

  • 4 Ler um ficheiro, ou ler os nomes dos ficheiros numa pasta
  • 2 Escrever ou modificar um ficheiro, ou modificar o conteúdo de uma pasta
  • 1 Executar ou executar um ficheiro, ou aceder aos ficheiros numa pasta

Estes dígitos são os privilégios que são atribuídos ao “quem” no modo de permissão. Note na lista acima que os privilégios significam algo diferente para arquivos e pastas.

Usar o modo de permissão correto é bastante importante. Para melhor ilustrar isto, pense novamente em usuários e papéis no WordPress. Em um site WordPress, os colaboradores e administradores têm diferentes conjuntos de capacidades. Contribuidores podem criar novos posts no blog, mas eles não podem adicionar plugins. Os administradores, por outro lado, podem adicionar plugins e também criar posts no blog. Os administradores podem até mudar a aparência do site, se quiserem. Uma linha clara separa o que usuários em diferentes funções podem fazer. Isto é o mesmo com os modos de permissão, exceto que ao invés de lidar com posts de blogs e opções de temas, estamos lidando com arquivos e pastas no servidor.

Changing Permission Modes

FTP clientes normalmente fornecem uma interface onde você pode convenientemente mudar o modo de permissão dos seus arquivos e pastas. Aqui está uma captura de tela da interface no meu cliente FTP:

Example of a permission mode interface.
Exemplo de uma interface em modo de permissão.

Se você tem acesso ao terminal do seu servidor, você também pode usar o comando chmod para mudar o modo de permissão de um arquivo ou pasta:

sudo chmod 644 <file>

Para mudar os modos de permissão de todos os arquivos ou pastas, use chmod em conjunto com o comando find. Por exemplo, você pode usar isto para alterar todos os arquivos para 644:

sudo find . -type f -exec chmod 644 {} +

ou usar isto para alterar todas as suas pastas para 755:

sudo find . -type d -exec chmod 755 {} +

Refer para “Alterando as permissões de arquivos no Codex WordPress” para um guia de alteração dos modos de permissão.

A diferença entre 644 e 777

Vejamos alguns modos de permissão e como eles afetam nosso site.

O que um script PHP com um modo de permissão de 644 significaria? Seguindo a explicação acima de como os modos de permissão funcionam, podemos decifrar o que este modo permite que os usuários façam com o nosso script:

  • Os privilégios do dono são “ler” (4) + “escrever” (2) = 6
  • Os privilégios do grupo do dono são “ler” (4) = 4
  • Todos os outros privilégios do dono são “ler” (4) = 4

Em linguagem simples, isto significa que:

  • Se tivermos o script, podemos lê-lo e modificá-lo;
  • todos os outros só o podem ler.

Como podemos ver, 644 é um bom modo de permissão para o nosso script PHP. Podemos fazer alterações nele, e o nosso servidor Web pode lê-lo.

Agora vamos olhar para as pastas. E se tivéssemos uma pasta que tivesse um modo de permissão de 777? Este modo de permissão pode ser decomposto da seguinte forma:

  • Os privilégios do dono são “ler” (4) + “escrever” (2) + “executar” (1) = 7
  • Os privilégios do grupo do dono são “ler” (4) + “escrever” (2) + “executar” (1) = 7
  • Todos os outros privilégios são “ler” (4) + “escrever” (2) + “executar” (1) = 7

Isto significa que

  • qualquer um pode obter uma lista de nomes de ficheiros na nossa pasta;
  • qualquer pessoa pode criar, modificar e excluir qualquer arquivo em nossa pasta;
  • qualquer pessoa pode acessar os arquivos em nossa pasta.

É óbvio que 777 é um modo de permissão ruim para qualquer coisa em nosso site WordPress porque qualquer visitante poderá adicionar arquivos em nosso diretório ou até mesmo excluir scripts. Pior, qualquer um seria capaz de colocar em código malicioso e comprometer nosso site.

Configurações do servidor WordPress

Agora nós sabemos sobre permissões e como lê-las. Mas antes de continuar a alterar todas as nossas permissões, precisamos entender como o nosso servidor está configurado. Como as permissões lidam com contas de usuários e grupos, precisamos saber como nosso site WordPress funciona.

Muitas configurações diferentes de servidor estão por aí. Configurações diferentes precisam de diferentes conjuntos de modos de permissão para que o WordPress funcione corretamente e com segurança. Vamos falar apenas sobre as duas configurações mais comuns e as permissões adequadas para elas:

  • Configuração padrão do servidor:
    • Você tem uma conta de usuário.
    • Seu servidor Web roda como outra conta de usuário.
  • Configuração do servidor compartilhado ou suEXECConfiguração:
    • Você tem uma conta de usuário.
    • Outras pessoas que usam o servidor têm contas de usuário e podem compartilhar o mesmo grupo com sua conta de usuário.
    • Seu servidor Web roda como o dono dos seus arquivos WordPress.

A principal diferença entre estes dois é como o servidor Web funciona.

Permissões para uma configuração padrão do servidor WordPress

As configurações padrão do WordPress requerem um pouco mais de trabalho do que as configurações do servidor compartilhado porque o servidor Web não tem relação com a nossa conta de usuário.

Propriedade de arquivos e pastas para WordPress

Primeiro, precisamos ajustar a propriedade dos arquivos e pastas dos nossos arquivos WordPress. Temos que nos certificar do seguinte:

  • que sua conta de usuário é a proprietária de todos os arquivos e pastas do WordPress,
  • que sua conta de usuário e a conta de usuário do servidor Web pertencem ao mesmo grupo.

Para descobrir os grupos aos quais sua conta de usuário pertence, você pode usar este comando no terminal do seu servidor:

groups

Então, para descobrir os grupos aos quais seu servidor Web pertence, você pode inserir temporariamente este trecho do PHP em um dos seus scripts do WordPress:

echo exec( 'groups' );

Se seu usuário e o servidor Web não pertencem ao mesmo grupo, você pode usar o seguinte comando no terminal para adicionar seu usuário a um dos grupos do seu servidor Web:

sudo usermod -a -G <a-common-group-name> myuser

Por último, para garantir que tudo na nossa pasta WordPress pertence à nossa conta de usuário e tem o grupo compartilhado que acabamos de adicionar, execute este comando na sua pasta WordPress:

sudo find . -exec chown myuser:a-common-group-name {} +

Permissões para WordPress

Todos os nossos arquivos e pastas devem agora ter a propriedade correta. Agora é hora de ajustar os modos de permissão. Para tornar as coisas mais simples, basta lembrar o seguinte:

  • Todos os arquivos devem ser 664.
  • Todas as pastas devem ser 775.
  • wp-config.php devem ser 660.

Aqui está o que estamos tentando alcançar com este conjunto de modos de permissão:

  • Nossa conta de usuário pode ler e modificar nossos arquivos.
  • WordPress (via nosso servidor Web) pode ler e modificar nossos scripts.
  • WordPress pode criar, modificar ou excluir arquivos e pastas.
  • Outras pessoas podem não ver nossas credenciais de banco de dados em wp-config.php.

Você pode estar pensando que permitir privilégios totais do WordPress com nossas pastas não é seguro. Não se preocupe – nós estamos fazendo isso porque o WordPress precisa de certos recursos para criar e modificar arquivos. O WordPress nos permite carregar e remover temas e plugins e até mesmo editar scripts e estilos do back end administrativo. Sem este tipo de permissão, teríamos que carregar manualmente temas e plugins todas as vezes usando FTP.

Você pode usar seu cliente FTP para mudar os modos de permissão, ou você pode usar os seguintes comandos no seu diretório WordPress para ajustar rapidamente as permissões de todos os seus arquivos e pastas:

sudo find . -type f -exec chmod 664 {} +sudo find . -type d -exec chmod 775 {} +sudo chmod 660 wp-config.php

Note que alguns servidores Web são mais rígidos do que outros. Se o seu é estrito, então ajustar o seu wp-config.php para 660 pode impedir o seu site de funcionar. Neste caso, apenas deixe como 664.

Permissões para uma configuração de servidor compartilhado ou configuração SuEXEC

Permissões para configurações de servidor compartilhado são mais fáceis de implementar. Não vamos nos deter na propriedade porque o servidor Web roda como o dono dos nossos arquivos e pastas. Como nossa conta de usuário e o servidor Web compartilham as mesmas permissões (ambos são proprietários), podemos mergulhar diretamente na modificação dos modos de permissão:

  • Todos os arquivos devem ser 644.
  • Todas as pastas devem ser 755.
  • wp-config.php deve ser 600.

Simplesmente ao conjunto anterior de modos de permissão, estes decompõem-se da seguinte forma:

  • A nossa conta de utilizador pode ler e modificar os nossos ficheiros.
  • WordPress (através do nosso servidor Web e como dono da conta) pode ler e modificar os nossos scripts.
  • WordPress pode criar, modificar ou excluir arquivos ou pastas.
  • Outras pessoas podem não ver nossas credenciais de banco de dados em wp-config.php.

Again, você pode usar um cliente FTP para alterar os modos de permissão, ou você pode usar os seguintes comandos no seu diretório WordPress para ajustar rapidamente as permissões de todos os seus arquivos e pastas:

sudo find . -type f -exec chmod 644 {} +sudo find . -type d -exec chmod 755 {} +sudo chmod 600 wp-config.php

Simplesmente à configuração padrão do servidor WordPress, seu servidor pode ser mais rígido que outros e pode não permitir que wp-config.php seja 600. Neste caso, você pode ajustá-lo para uma configuração mais indulgente 640; se isso ainda não funcionar, então use 644.

Seguir sempre estas diretrizes e seus arquivos WordPress devem ser mantidos a salvo de intrusos.

Pistas comuns

Um erro comum que as pessoas cometem é definir a pasta uploads para 777. Alguns fazem isso porque recebem um erro ao tentar carregar uma imagem em seu site, e 777 corrige rapidamente esse problema. Mas nunca dê acesso ilimitado a todos, ou então você tornará o servidor Web vulnerável a ataques. Se você seguir as orientações abordadas neste artigo, então você não deverá ter problemas ao fazer upload de arquivos para o seu website.

Por vezes, no entanto, um plugin irá solicitar que você defina um arquivo para 777. Nessas ocasiões, você pode defini-lo temporariamente para 777, mas certifique-se de colocá-lo de volta no modo de permissão original quando terminar.

Conclusion

Agora aprendemos sobre as permissões adequadas e propriedade de arquivos de um site WordPress. Também aprendemos a evitar um modo de permissão de 777 por causa de como isso coloca em perigo o servidor Web.