Eu dei uma olhada aqui, mas não encontrei detalhes sobre as melhores permissões de arquivo. Também examinei algumas das perguntas do formulário do WordPress por aqui também, mas qualquer um que sugira o 777 obviamente precisa de uma pequena lição de segurança.
Em suma, minha pergunta é esta. Quais permissões devo ter para o seguinte:
- pasta raiz armazenando todo o conteúdo do WordPress
- wp-admin
- conteúdo wp
- wp-inclui
e então todos os arquivos em cada uma dessas pastas?
Respostas:
Quando você configura o WP, você (o servidor da web) pode precisar de acesso de gravação aos arquivos. Portanto, os direitos de acesso podem precisar ser perdidos.
Após a instalação, você deve aumentar os direitos de acesso , de acordo com o Hardening WordPress, todos os arquivos, exceto o conteúdo wp, devem ser graváveis apenas pela sua conta de usuário. O conteúdo wp também deve ser gravável por www-data .
Talvez você queira alterar o conteúdo em wp-content mais tarde. Nesse caso, você poderia
su
,Faça o que fizer, verifique se os arquivos têm permissões rw para www-data .
fonte
www-data
??? Isso realmente não parece totalmente seguro.Dar acesso total a todos os arquivos wp ao
www-data
usuário (que é neste caso o usuário do servidor da web) pode ser perigoso. Então, NÃO faça isso:No entanto, pode ser útil no momento em que você estiver instalando ou atualizando o WordPress e seus plug-ins. Mas quando você termina, não é mais uma boa idéia manter os arquivos wp de propriedade do servidor da web.
Basicamente, permite que o servidor da Web coloque ou substitua qualquer arquivo no seu site. Isso significa que existe a possibilidade de assumir o controle do seu site se alguém conseguir usar o servidor da Web (ou uma brecha de segurança em algum script .php) para colocar alguns arquivos no seu site.
Para proteger seu site contra esse ataque, você deve:
Fonte e informações adicionais: http://codex.wordpress.org/Hardening_WordPress
fonte
Para aqueles que têm a pasta raiz do wordpress na pasta inicial:
** Ubuntu / apache
CRÉDITO Concedendo permissões de gravação ao grupo de dados www
Você deseja chamar
usermod
seu usuário. Então isso seria:** Supondo que o
www-data
grupo existaVerifique se seu usuário está em
www-data
grupo:groups yourUserName
Você deve obter algo como:
** youUserGroupName é geralmente semelhante ao seu nome de usuário
Alterar recursivamente a propriedade do grupo da pasta wp-content, mantendo a propriedade do usuário
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
Mude o diretório para youWebSiteFolder / wp-content /
cd youWebSiteFolder/wp-content
Altere recursivamente as permissões de grupo das pastas e subpastas para ativar as permissões de gravação:
find . -type d -exec chmod -R 775 {} \;
** modo de `/ home / yourUserName / youWebSiteFolder / wp-content / 'alterado de 0755 (rwxr-xr-x) para 0775 (rwxrwxr-x)
Altere recursivamente as permissões de grupo dos arquivos e subarquivos para ativar as permissões de gravação:
find . -type f -exec chmod -R 664 {} \;
O resultado deve ser algo como:
Equivalente a:
chmod -R ug + rw nome da pasta
As permissões serão como 664 para arquivos ou 775 para diretórios.
Ps se alguém encontrar erro
'could not create directory'
ao atualizar um plugin, faça:server@user:~/domainame.com$ sudo chown username:www-data -R wp-content
quando você estiver na raiz do seu domínio.
Supondo:
wp-config.php
possuicredenciais de FTP no LocalHost
define('FS_METHOD','direct');
fonte
É melhor ler a documentação do wordpress neste https://wordpress.org/support/article/changing-file-permissions/
fonte
Eu defino permissões para:
No meu caso, criei um usuário específico para o WordPress, diferente do usuário padrão do apache, que impede o acesso da web aos arquivos pertencentes a esse usuário.
Em seguida, permite ao usuário apache manipular a pasta de upload e, finalmente, definir permissões de arquivo e pasta suficientemente seguras.
EDITADO
Se você estiver usando o W3C Total Cache, faça o seguinte também:
Então vai dar certo!
EDITADO
Depois de um tempo desenvolvendo sites WordPress, recomendo permissões de arquivo diferentes por ambiente:
Na produção, eu não daria acesso aos usuários para modificar o sistema de arquivos, apenas permitirei que eles enviassem recursos e tivessem acesso a pastas específicas de alguns plugins para fazer backups, etc. Mas gerenciando projetos no Git e usando chaves de implantação no servidor, não são bons plugins de atualização na preparação nem na produção. Deixo aqui a configuração do arquivo de produção:
www-data: www-data = usuário e grupo apache ou nginx
A preparação compartilhará as mesmas permissões de produção, pois deve ser um clone dela.
Finalmente, o ambiente de desenvolvimento terá acesso para atualizar plugins, traduções, tudo ...
www-data: www-data = usuário apache ou nginx e grupo your-user: root-group = seu usuário atual e o grupo raiz
Essas permissões darão acesso para desenvolver sob
themes
eyour-plugin
pasta sem pedir permissão. O restante 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 repositório git, execute primeiro estes comandos:
fonte
As permissões corretas para o arquivo são 644 As permissões corretas para a pasta são 755
Para alterar as permissões, use o terminal e os seguintes comandos.
755 para pastas e 644 para arquivos.
fonte
Eu acho que as regras abaixo são recomendadas para um site wordpress padrão:
Para pastas dentro do conteúdo wp, defina as permissões 0755:
Plugins chmod -R 0755
chmod -R 0755 carregamentos
Atualização chmod -R 0755
Permita que o usuário apache seja o proprietário dos diretórios acima do wp-content:
uploads de chown apache
atualização do apache chown
chown apache plugins
fonte
Na verdade, depende dos plugins que você planeja usar, pois alguns plugins alteram o documento raiz do wordpress. mas geralmente eu recomendo algo assim para o diretório wordpress.
Isso atribuirá a "raiz" (ou qualquer que seja o usuário que você esteja usando) como o usuário em cada arquivo / pasta, R significa recursivo, portanto, ele não para na pasta "html". se você não usou R, é aplicável apenas ao diretório "html".
Isso definirá o proprietário / grupo de "wp-content" como "www-data" e, assim, permitirá que o servidor da Web instale os plugins através do painel de administração.
Isso definirá a permissão de cada arquivo na pasta "html" (incluindo arquivos em subdiretórios) para 644, para que pessoas de fora não possam executar nenhum arquivo, modificar qualquer arquivo, grupo não pode executar nenhum arquivo, modificar qualquer arquivo e apenas o usuário tem permissão para modificar / ler arquivos, mas mesmo assim o usuário não pode executar nenhum arquivo. Isso é importante porque evita qualquer tipo de execução na pasta "html", também porque o proprietário da pasta html e de todas as outras pastas, exceto a pasta wp-content, é "root" (ou seu usuário), o www-data pode ' t modifique qualquer arquivo fora da pasta wp-content, portanto, mesmo se houver alguma vulnerabilidade no servidor da web e se alguém tiver acessado o site sem autorização, eles não poderão excluir o site principal, exceto os plug-ins.
Isso restringirá a permissão de acessar "wp-config.php" para o usuário / grupo com rw-r ----- essas permissões.
E se um plug-in ou atualização reclamou que não pode ser atualizado, acesse o SSH e use este comando e conceda a permissão temporária para "www-data" (servidor da web) para atualizar / instalar através do painel de administração e, em seguida, reverta volte para a "raiz" ou para o usuário assim que estiver concluído.
E no Nginx (o mesmo procedimento para o apache) para proteger a pasta wp-admin de acesso não autorizado e sondagem. O apache2-utils é necessário para criptografar a senha, mesmo se você tiver o nginx instalado, omita c se planeja adicionar mais usuários ao mesmo arquivo.
Agora visite este local
Use esses códigos para proteger a pasta "wp-admin" com uma senha, agora ele perguntará a senha / nome de usuário se você tentou acessar o "wp-admin". observe, aqui você usa o arquivo ".htpasswd" que contém a senha criptografada.
Agora reinicie o nginx.
fonte
Comandos:
Onde ftp-user é qual usuário você está usando para fazer upload dos arquivos
fonte
$(whoami)
vez deftp-user
. Por padrão, o usuário atual ( não raiz ) é o seu usuário FTP se você estiver usando seu próprio servidor (local, VPS, etc)Para ter certeza absoluta de que seu site é seguro e você está usando as permissões corretas para suas pastas, use um plug-in 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/
Esses plugins verificarão a instalação do Wordpress e o notificarão sobre possíveis problemas. Isso também avisará sobre permissões de pasta não seguras. Além disso, esses plugins recomendam quais permissões devem ser atribuídas às pastas.
fonte
fonte
Não sei dizer se isso está correto ou não, mas estou usando uma imagem Bitnami no Google Compute App Engine. Estou tendo problemas com plug-ins e migração e, depois de bagunçar ainda mais as permissões chmod'ing, encontrei essas três linhas que resolveram todos os meus problemas. Não tenho certeza se é o caminho certo, mas funcionou para mim.
fonte
Para o OS X, use este comando:
fonte
Defina no arquivo wp_config.
chown - altera a propriedade dos arquivos / diretórios. Ou seja. O proprietário do arquivo / dir muda para o especificado, mas não modifica as permissões.
fonte
Com base em toda a leitura e agonia em meus próprios sites e depois de ter sido hackeado, criei a lista acima, que inclui permissões para um plugin de segurança para o Wordpress chamado Wordfence. (Não afiliado)
No nosso exemplo, a raiz do documento wordpress é /var/www/html/example.com/public_html
Abra as permissões para que www-data possa gravar na raiz do documento da seguinte maneira:
Agora, no painel do seu site, como administrador, você pode executar atualizações.
Site seguro após a conclusão das atualizações, seguindo estas etapas:
O comando acima altera as permissões de tudo na instalação do wordpress para o usuário FTP do wordpress.
O comando acima garante que o plug-in de segurança Wordfence tenha acesso aos seus logs. O diretório de uploads também pode ser gravado por www-data.
O comando acima também garante que o plug-in de segurança tenha exigido acesso de leitura e gravação para sua função adequada.
Permissões de diretório e arquivos
Defina as permissões do wp-config.php para 640, para que apenas o usuário wp possa ler este arquivo e mais ninguém. Permissões de 440 não funcionaram para mim com a propriedade do arquivo acima.
As atualizações automáticas do Wordpress usando SSH estavam funcionando bem com o PHP5, mas quebraram com o PHP7.0 devido a problemas com o pacote php7.0-ssh2 com o Ubuntu 16.04 e não consegui encontrar como instalar a versão correta e fazê-la funcionar. Felizmente, um plugin muito confiável chamado ssh-sftp-updater-support (free) possibilita atualizações automáticas usando o SFTP sem a necessidade do libssh2. Portanto, as permissões acima nunca precisam ser diminuídas, exceto em casos raros, conforme necessário.
fonte