Permissões de ficheiros correctas para o WordPress

dei uma vista de olhos aqui mas não encontrei quaisquer detalhes nas melhores permissões de ficheiros. Eu também dei uma olhada em algumas perguntas Da Forma do WordPress sobre aqui também , mas qualquer um que sugere 777 obviamente precisa de uma pequena lição em segurança.

Resumindo, a minha pergunta é esta. Que permissões devo ter para o seguinte:

  1. pasta de raiz a guardar todo o WordPress conteúdo
  2. wp-admin
  3. conteúdo de wp
  4. wp-includes
E depois TODOS os ficheiros em cada uma dessas pastas?

Author: Farkie, 2013-08-21

15 answers

Quando configurar o WP você (o servidor web) poderá necessitar de acesso de escrita aos ficheiros. Por isso, os direitos de acesso podem ter de ser vagos.

chown www-data:www-data  -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \;  # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \;  # Change file permissions rw-r--r--

Após a configuração, você deve Apertar os direitos de acesso, de acordo com endurecer WordPress todos os ficheiros, excepto o conteúdo wp, devem ser gravados apenas pela sua conta de utilizador. o conteúdo de wp deve poder ser escrito por www-data também.

chown <username>:<username>  -R * # Let your useraccount be owner
chown www-data:www-data wp-content # Let apache be owner of wp-content

Talvez queiras mudar o conteúdo do wp-content mais tarde. Neste caso, você poderia

  • mudança temporária para o utilizador para www-data com su,
  • dê acesso de escrita ao grupo de conteúdo WP 775 e junte-se ao grupo www-data ou
  • dê ao seu utilizador os direitos de acesso à pasta usando ACLs.

Faça o que fizer, certifique-se que os ficheiros têm permissões de rw para www-data .

 346
Author: ManuelSchneid3r, 2017-01-03 20:09:28

Dar o acesso total a todos os ficheiros wp ao Utilizador {[[1]} (que é neste caso o utilizador do servidor web) pode ser perigoso. Então, em vez de não fazer isto:

chown www-data:www-data -R *
Pode ser útil no entanto no momento em que você está instalando ou atualizando WordPress e seus plug-ins. Mas quando você terminou não é mais uma boa idéia para manter arquivos wp de propriedade do servidor web. Ele basicamente permite que o servidor web coloque ou sobreponha qualquer arquivo em seu site. Isto significa que há é uma possibilidade de assumir o seu site se alguém conseguir usar o servidor web (ou um buraco de segurança em alguns.php script) para colocar alguns arquivos em seu site.

Para proteger o seu local contra tal ataque, deve fazer o seguinte:

Todos os ficheiros devem ser propriedade da sua conta de utilizador, e devem poder ser gravados por ti. Qualquer arquivo que precisa de acesso de escrita do WordPress deve ser pode ser escrita pelo servidor web, se a sua configuração de hospedagem o exigir, que pode significar esses arquivos necessidade de ser propriedade do grupo pela conta de utilizador utilizada pelo processo do servidor web.

/

O directório raiz WordPress: todos os ficheiros devem poder ser gravados apenas pela sua conta de utilizador, excepto .htaccess se você quiser WordPress para gerar automaticamente as regras de reescrita para si.

/wp-admin/

A área de administração do WordPress: todos os ficheiros devem poder ser gravados apenas pela sua conta de utilizador.

/wp-includes/

A maior parte da aplicação WordPress lógica: todos os ficheiros devem poder ser gravados apenas pela sua conta de utilizador.

/wp-content/

Conteúdo fornecido pelo Utilizador: destinado a ser escrito pela sua conta de utilizador e pelo processo do servidor web.

Dentro de {[5] } encontrarás:

/wp-content/themes/

Ficheiros de temas. Se você quiser usar o editor de tema incorporado, todos os arquivos precisam ser graváveis pelo processo do servidor web. Se não se quiser usar o editor de temas incorporado, todos os ficheiros poderão ser apenas graváveis pelo seu conta.

/wp-content/plugins/

Ficheiros de 'plugins': todos os ficheiros devem poder ser gravados apenas pela sua conta de utilizador.

Outras pastas que possam estar presentes com /wp-content/ devem ser documentada por qualquer plugin ou tema que os requeira. As permissões podem variar.

Fonte e informações adicionais: http://codex.wordpress.org/Hardening_WordPress

 49
Author: Kornel, 2014-10-18 16:49:36

Para aqueles que têm a sua pasta raiz wordpress sob a sua pasta pessoal:

** Ubuntu / apache

  1. adicione o seu utilizador ao grupo www-data:

Crédito concessão de permissões de escrita ao grupo www-data

Queres ligar para o teu utilizador. Então isso seria:

sudo usermod -aG www-data yourUserName

* * assumindo que www-data o grupo existe

  1. Verifique se o seu utilizador está no grupo www-data:

    groups yourUserName

Devias ... algo do género:
youUserName : youUserGroupName www-data

* * o seu nome de utilizador é normalmente semelhante ao seu nome de utilizador

  1. Mudar recursivamente a propriedade do grupo da pasta de conteúdo wp mantendo a propriedade do utilizador

    chown yourUserName:www-data -R youWebSiteFolder/wp-content/*

  2. Mudar a pasta para o utilizador / wp-content/

    cd youWebSiteFolder/wp-content

  3. Mudar recursivamente as permissões de grupo das pastas e sub-pastas para activar as permissões de escrita:

    find . -type d -exec chmod -R 775 {} \;

* * Modo de '/home/your username/youWebSiteFolder/ wp-content / ' alterado de 0755 (rwxr-xr-x) para 0775 (rwxrwxr-x)

  1. Mudar recursivamente as permissões de grupo dos ficheiros e sub-ficheiros para activar as permissões de escrita:

    find . -type f -exec chmod -R 664 {} \;

O resultado deve ser parecido com:

WAS:
-rw-r--r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html
CHANGED TO:
-rw-rw-r--  1 yourUserName www-data  7192 Oct  4 00:03 filename.html

Equivalente a:

Chmod-R ug+rw foldername

As permissões serão como 664 Para ficheiros ou 775 para directórios.

P. S. Se alguém encontrar erro 'could not create directory' ao actualizar um 'plugin', faça:
server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
quando você está na raiz do seu domínio.
Assumindo: wp-config.php tem
credenciais de FTP no LocalHost
define('FS_METHOD','direct');
 21
Author: Jadeye, 2017-04-13 12:37:31

Configurei as permissões para:

    # Set all files and directories user and group to wp-user
    chown wp-user:wp-user -R *

    # Set uploads folder user and group to www-data
    chown www-data:www-data -R wp-content/uploads/

    # Set all directories permissions to 755
    find . -type d -exec chmod 755 {} \;

    # Set all files permissions to 644
    find . -type f -exec chmod 644 {} \;

No meu caso, criei um utilizador específico para o WordPress que é diferente do utilizador predefinido apache que impede o acesso da web aos ficheiros que pertencem a esse utilizador.

Então dá permissão ao utilizador apache para lidar com a pasta de envio e, finalmente, definir as permissões de ficheiros e pastas seguras o suficiente.

Edição

Se está a usar a 'Cache' total do W3C, deve fazer o seguinte também:

chmod 777 wp-content/w3tc-config
chmod 777 wp-content/cache

rm -rf wp-content/cache/config
rm -rf wp-content/cache/object
rm -rf wp-content/cache/db
rm -rf wp-content/cache/minify
rm -rf wp-content/cache/page_enhanced
Então vai trabalho!

Edição

Depois de um tempo a desenvolver sites WordPress eu recomendaria diferentes permissões de arquivos por ambiente:

Em produção, Eu não daria acesso aos usuários para modificar o sistema de arquivos, eu só lhes permitiria carregar recursos e dar acesso a algumas pastas específicas de plugins para fazer backups, etc. Mas gerenciar projetos sob o Git e usar chaves de implantação no servidor, não é uma boa atualização plugins em encenação ou produção. Deixo aqui o ficheiro de produção. configuração:

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/uploads/

www-data: www-data = apache ou nginx utilizador e grupo

A encenação partilhará as mesmas permissões de produção que deveria ser um clone dela.

Finalmente, o ambiente de desenvolvimento terá acesso a plugins de atualização, traduções, tudo...

# Set uploads folder user and group to www-data
chown www-data:www-data -R wp-content/

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/themes

# Set uploads folder user and group to www-data
chown your-user:root-group -R wp-content/plugins/your-plugin

www-data: www-data = apache ou nginx user and group o seu-utilizador: root-group = o seu utilizador actual e o grupo root

Estas permissões dar-lhe-ão acesso a desenvolver sob a pasta themes e your-plugin sem pedir permissão. O resto do conteúdo será de propriedade do Usuário Apache ou Nginx para permitir que o WP gerencie o sistema de arquivos.

Antes de criar um repo git execute primeiro estes comandos:

# Set all directories permissions to 755
find . -type d -exec chmod 755 {} \;

# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;
 13
Author: Pablo Ezequiel Leone, 2017-03-07 22:11:31

As permissões correctas para o ficheiro São 644 As permissões correctas para a pasta são 755

Para alterar as permissões, use o terminal e os seguintes comandos.

find foldername -type d -exec chmod 755 {} \;
find foldername -type f -exec chmod 644 {} \;

755 para pastas e 644 para ficheiros.

 9
Author: Kappa, 2016-06-13 11:23:41

É melhor ler a documentação do wordpress sobre isto https://codex.wordpress.org/Changing_File_Permissions

  • Todos os ficheiros devem ser propriedade da conta do utilizador actual, não da conta de utilizador utilizada no processo httpd
  • a propriedade do grupo é irrelevante, a menos que haja requisitos específicos de grupo para a verificação das permissões do processo do servidor web. Normalmente, não é esse o caso.
  • todas as pastas devem ser 755 ou 750.
  • Todos os ficheiros devem seja 644 ou 640. Excepção: wp-config.php deve ser 440 ou 400 para impedir que outros usuários no servidor de lê-lo.
  • nunca deverão ser dadas 777 pastas, nem mesmo as pastas de envio. Uma vez que o processo php está sendo executado como o proprietário dos arquivos, ele recebe as permissões dos proprietários e pode escrever até mesmo para um diretório 755.
 8
Author: PodTech.io, 2017-11-30 10:59:16

Acho que as regras abaixo são recomendadas para um site wordpress padrão:

  • Para as pastas dentro do conteúdo de wp, defina as permissões de 0755:

    Plugins Chmod-R 0755

    Chmod-R 0755 uploads

    Actualização do Chmod-R 0755

  • Deixe o utilizador apache ser o dono das pastas acima de wp-content:

    Carregamentos apache Chown

    Actualização do apache Chown

    Chown 'plugins' apache

 7
Author: shasi kanth, 2015-03-27 11:10:45

Isso realmente depende dos plugins que você planeja usar como alguns plugins alterar o documento raiz do wordpress. mas geralmente eu recomendo algo assim para o diretório wordpress.

Isto irá atribuir o " root "(ou seja qual for o utilizador que esteja a usar) como utilizador em cada ficheiro/pasta, R significa recursivo, por isso não pára na pasta" html". se você não usou R, então ele só se aplica ao diretório "html".

sudo chown -R root:www-data /var/www/html  

Isto irá definir o proprietário / grupo de "wp-content" Para "www-data" e, assim, permitindo que o servidor web para instalar os plugins através do painel de administração.

chown -R www-data:www-data /var/www/html/wp-content

Isto irá definir a permissão de cada ficheiro na pasta "html" (incluindo ficheiros nas sub-pastas) para 644, por isso as pessoas exteriores não podem executar nenhum ficheiro, modificar QUALQUER ficheiro, o grupo não pode executar nenhum ficheiro, modificar QUALQUER ficheiro e só o utilizador pode modificar/ler os ficheiros, mas mesmo assim nem o utilizador pode executar QUALQUER ficheiro. Isto é importante porque impede qualquer tipo de execução em "html" pasta, também, pois o proprietário da pasta html e todas as outras pastas, exceto a wp-content pasta "root" (ou o usuário), o www-data não pode modificar nenhum arquivo fora da wp-content pasta, por isso mesmo, se há alguma vulnerabilidade no servidor web, e se alguém acessou o site unauthorizedly, eles não podem eliminar o principal do site, exceto os plugins.

sudo find /var/www/html -type f -exec chmod 644 {} +

Isto vai restringir a permissão de acesso a " wp-config.php " to user / group with rw-r - - - - - these permissions.
chmod 640 /var/www/html/wp-config.php

E se um plugin ou atualização queixou-se ele não pode atualizar, em seguida, acessar o SSH e usar este comando, e conceder a permissão temporária para "www-data" (servidor web) para atualizar/instalar através do painel de administrador e, em seguida, reverter para a "raiz" ou o seu usuário uma vez que está concluída.

chown -R www-data /var/www/html

E em Nginx (o mesmo procedimento para o apache)para proteger a pasta wp-admin de acesso não autorizado, e sondar. o apache2-utils é necessário para cifrar a senha, mesmo que tenha o nginx instalado, omite o c se planeia adicionar mais utilizadores ao mesmo ficheiro.

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName

Agora visite este local

/etc/nginx/sites-available/

Use estes códigos para proteger a pasta "wp-admin" com uma senha, agora irá perguntar a senha/nome de utilizador se tentou aceder à pasta "wp-admin". repare, aqui você usa o".Ficheiro htpasswd " que contém a senha encriptada.

location ^~ /wp-admin {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    index  index.php index.html index.htm;
}

Agora reinicie a nginx.

sudo /etc/init.d/nginx restart
 6
Author: Liyanage, 2017-01-12 13:15:49

Comandos:

chown www-data:www-data -R *
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Onde o ftp-Utilizador é o utilizador que está a usar para enviar os ficheiros

chown -R ftp-user:www-data wp-content
chmod -R 775 wp-content
 3
Author: Iacob Vlad-George, 2016-07-06 11:24:36

Não posso dizer - lhe se isto está correcto ou não, mas estou a usar uma imagem Bitnami no Google Compute App Engine. Eu tenho tido problemas com plugins e migração, e depois de mais bagunçar as coisas por permissões de chmod'ing, eu encontrei estas três linhas que resolveram todos os meus problemas. Não sei se é a maneira correcta, mas funcionou comigo.

sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 775 {} \;
 1
Author: wayofthefuture, 2016-05-27 19:19:05

Para OS X use este comando:

sudo chown -R www:www /www/folder_name
 1
Author: Abduhafiz, 2016-09-06 15:35:20

Para ter a certeza absoluta de que o seu site está seguro e que está a usar permissões correctas para as suas pastas, use um 'plugin' de segurança como estes:

Https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/

Https://en-ca.wordpress.org/plugins/wordfence/

Estes plugins irão analisar a sua instalação Wordpress e notificá-lo sobre quaisquer problemas potenciais. Estes também o avisarão sobre quaisquer permissões de pastas inseguras. Alem para isso, estes plugins irão recomendar-lhe que permissões devem ser atribuídas às pastas.

 1
Author: user296526, 2016-10-14 15:39:36

Define no ficheiro wp_ Config.

/var/www/html/Your-Project-File / wp-config.php

define( 'FS_METHOD', 'direct' );

Chown - muda de propriedade de ficheiros/dirs. Ie. o dono do ficheiro/pasta muda para o indicado, mas não modifica as permissões.

sudo chown -R www-data:www-data /var/www
 1
Author: Harish Verma, 2018-05-31 07:27:48
chown -Rv www-data:www-data
chmod -Rv 0755 wp-includes
chmod -Rv 0755 wp-admin/js
chmod -Rv 0755 wp-content/themes
chmod -Rv 0755 wp-content/plugins
chmod -Rv 0755 wp-admin
chmod -Rv 0755 wp-content
chmod -v 0644 wp-config.php
chmod -v 0644 wp-admin/index.php
chmod -v 0644 .htaccess
 0
Author: Grapehand, 2017-11-29 20:42:29

Com base em toda a leitura e agonizante em meus próprios sites e depois de ter sido hackeado eu vim acima com a lista acima que inclui permissões para um plugin de segurança para Wordpress chamado Wordfence. (Não ligado a Ele)

No nosso exemplo, a raiz do documento wordpress é /var/www/html/example.com / public_html

Abra as permissões para que o www-data possa escrever na raiz do documento da seguinte forma:

cd /var/www/html/example.com
sudo chown -R www-data:www-data public_html/
Agora a partir do painel de instrumentos no seu site, como administrador você pode realizar atualizações.

Local Seguro após as actualizações terminadas, seguindo estes passos:

sudo chown -R wp-user:wp-user public_html/

O comando acima muda as permissões de tudo no wordpress instalar para o usuário de FTP wordpress.

cd public_html/wp-content
sudo chown -R www-data:wp-user wflogs
sudo chown -R www-data:wp-user uploads

O comando acima garante que o 'plugin' de segurança Wordfence tem acesso aos seus registos. O diretório uploads também é gravado por www-data.

cd plugins
sudo chown -R www-data:wp-user wordfence/

O comando acima também garante que o plugin de segurança necessita de acesso de escrita de leitura para o seu próprio funcao.

Permissões de directório e ficheiros # Configura todas as permissões de directórios para 755 encontrar . - Tipo d-exec chmod 755 {} \;

# Set all files permissions to 644
find . -type f -exec chmod 644 {} \;

Define as permissões para wp-config.php para 640 de modo que apenas WP-user pode ler este arquivo e mais ninguém. Permissões de 440 não funcionaram para mim com a propriedade acima do arquivo.

sudo chmod 640 wp-config.php

As actualizações automáticas do Wordpress usando o SSH estavam a funcionar bem com o PHP5, mas romperam com o PHP7. 0 devido a problemas com o php7.0-SSH2 bundeld com o Ubuntu 16.04 e Não consegui encontrar como instalar a versão certa e fazê-la funcionar. Felizmente, um plugin muito confiável chamado ssh-sftp-updater-support (livre) torna possíveis atualizações automáticas usando SFTP sem necessidade de libssh2. Assim, as permissões acima nunca têm que ser desapertadas, exceto em casos raros, conforme necessário.

 0
Author: spinozarabel, 2018-07-19 08:36:52