Wordpress 4.7 ignora as permissões do Ubuntu 16.04

0

Quando venho desinstalar os plug-ins do Wordpress, recebo uma mensagem dizendo que preciso fazer login no FTP / SFTP no sistema. Quando eu preencho as credenciais corretas, o Wordpress as rejeita.

Após algumas leituras, entendi que devo fazer o meu work-user owner e www-data as group (ambos recursivamente), na biblioteca wp-content (na qual os plug-ins, temas e bibliotecas de idiomas estão situados).

Bem, eu fiz isso, e eu também dei 777 recursivamente para todo o wp-contnet, apenas para testes (permissões básicas são 755 para dirs e 644 para arquivos).

Mesmo depois disso, eu ainda estou sendo solicitado pelo Wordpress para fazer o login via FTP / SFTP e novamente o Wordpress rejeita as credenciais certas.

cd /var/www/html/example.com
sudo chown $USER:www-data wp-content/ -R
sudo chmod 777 wp-content/ -R

Mais detalhes (IPs e nomes de usuário omitidos):

sudo tail /var/log/apache2/error.log:

0.0.0.0 - - [08/Dec/2016:10:12:39 +0000] "POST /example.com/wp-admin/admin-ajax.php HTTP/1.1" 200 436 "http://0.0.0.0/example.com/wp-admin/plugins.php"

sudo tail /var/log/auth.log:

Dec 8 10:24:34 ubuntu-2gb-fra1-01 sudo: pam_unix(sudo:session): session closed for user root
Dec 8 10:26:36 ubuntu-2gb-fra1-01 sshd[28358]: Invalid user sunil from IP
Dec 8 10:26:36 ubuntu-2gb-fra1-01 sshd[28358]: input_userauth_request: invalid user sunil [preauth]
Dec 8 10:26:37 ubuntu-2gb-fra1-01 sshd[28358]: Connection closed by IP port 37544 [preauth]
Dec 8 10:30:01 ubuntu-2gb-fra1-01 CRON[28571]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec 8 10:30:01 ubuntu-2gb-fra1-01 CRON[28571]: pam_unix(cron:session): session closed for user root
Dec 8 10:33:41 ubuntu-2gb-fra1-01 sshd[28658]: Did not receive identification string from IP
Dec 8 10:34:54 ubuntu-2gb-fra1-01 sshd[28659]: Connection closed by IP port 17928 [preauth]
Dec 8 10:35:26 ubuntu-2gb-fra1-01 SUDO USERNAME TTY=pts/0 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/tail auth.log

Atualização 1 - Atualização para George:

Desta vez eu fiz o seguinte dentro do diretório dos sites, com meu usuário principal do Ubuntu:

cd /var/www/html/example.com
sudo chown $USER:www-data wp-content/ -R
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \; 

Eu fui para excluir plugins, foi solicitado para as credenciais de FTP e preenchi-los (eu preenchi meu mesmo usuário de trabalho do Ubuntu e sua senha) e ainda, Wordpress rejeita esses detalhes e não consigo remover plugins da sua GUI .

Atualização 2 - uma direção para uma solução:

Quando eu levantei o VPS pela primeira vez, desabilitei qualquer opção de login no servidor com senhas. Eu sempre faço o login nele com chaves SSH (mesmo que eu tenha uma senha para o meu usuário com quem eu faço o login). Esse fato pode estar associado ao problema que encontro.

Em outras palavras, o Wordpress quer usar os servidores username-passowrd autenticação FTP / SFTP mas por outro lado, por meio de segurança desabilitei a senha para autenticação do servidor ao criar o VPS enquanto o Wordpress não processa o SSH chaves , então o Wordpress filma a si mesmo no pé com o pedido para eu fazer login com SFTP (a maioria dos usuários de SFTP que eu conheço, incluindo eu mesmo, usa SFTP pelo menos com chaves SSH, mas não apenas com senhas).

    
por JohnDoea 07.12.2016 / 22:25

3 respostas

0

O que funcionou para mim foi fazer:

Estágio 1 - Desative a necessidade do Wordpress de solicitar credenciais de SFTP / FTP:

Eu acho que o Wordpress precisa pedir credenciais de SFTP / FTP (IP, nome de usuário e senha) como redundantes e um grande problema de arquitetura no programa; A razão é que nem todas as pessoas permitem o uso de senhas para autenticação do servidor. Algumas pessoas, como eu, desativam-no em /home/USERNAME/.ssh/authorized_keys por motivos de segurança / manutenção.

A solução para o pedido do Wordpress para essas credenciais é desabilitá-lo. Para isso, adicione isso no final do seu arquivo wp-config :

define('FS_METHOD', 'direct');

Estágio 2 - dê a propriedade, o agrupamento e as permissões corretas:

sudo chown www-data:www-data wp-content/ -R
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \; 

Observe que eu fiz sudo chown www-data:www-data wp-content/ -R em vez de sudo chown $USER:www-data wp-content/ -R . A razão é que com o primeiro eu ainda não consegui desinstalar plugins e o Wordpress parece precisar de www-data como proprietário.

Basicamente é isso. Depois de executar essas ações, você pode concluir a desinstalação dos plug-ins ou executar ações semelhantes. Você precisa reiniciar o seu servidor e, nesse caso, se você estiver usando o Apache, execute:

sudo service apache2 restart .

Quero agradecer a Dan e George pela ajuda e comentários.

    
por JohnDoea 08.12.2016 / 14:43
1

O Wordpress da minha experiência requer que você [instale ou desinstale] plugins através de um programa de ftp em vez de fazê-lo manualmente ao desenvolver no Ubuntu e é assim que eu desenvolvi com ele no meu Ubuntu

Agora, para o caso de permissão, o Wordpress não leva em consideração as permissões de arquivo quando [instalando ou desinstalando] plugins, ele apenas insiste que você use isso significa fazê-lo. Acredito que o wordpress usa seu padrão ou definir permissões para escrever para eles como o caso pode exigir, mas quando [instalando ou desinstalando] alguém o faz dessa maneira.

Nota: O mesmo não é o caso quando feito em uma instalação ao vivo, como isso é feito nos bastidores.

Acredito que seja um recurso de segurança que garante que o processo esteja sendo feito por você, o proprietário, por isso a necessidade de fazer isso por meio de um aplicativo de autenticação como o seu.

E você precisará usar sua senha e nome de usuário do Ubuntu para fazê-lo quando solicitado pelo aplicativo ftp (por exemplo, vsftpd ou qualquer outro). Portanto, alterar as permissões só permitirá que o wordpress manipule esses arquivos, mas não determine como eles são adicionados ao wordpress.

Mesmo se você conseguir entrar ou adicionar um plug-in e o WordPress descobrir que você não definiu as permissões corretas no Ubuntu, esse processo não funcionará porque o wordpress faz alterações em pastas e arquivos ao manipular um plug-in. Então o WordPress verifica duas coisas:

  • Você tem as permissões necessárias do Ubuntu ou Linux para fazer isso (o ambiente wordpress é de sua propriedade)?
  • Você tem permissão para instalar ou desinstalar plugins no ambiente atual (ou seja, você tem permissões de arquivo adequadas do Ubuntu)?

Ambos devem estar a seu favor para que funcione como esperado. Então, finalmente, você precisa instalar um aplicativo ftp para fazer o desenvolvimento do Wordpress em seu computador.

    
por George Udosen 08.12.2016 / 05:55
0

Eu poderia pensar em duas soluções possíveis

  1. Use seu nome de usuário e senha de login como nome de usuário e senha do FTP.

  2. Instale algo como o ProFTPD na sua máquina

Pessoalmente, se você operar a partir do painel de instrumentos e a permissão estiver correta (padrão), você poderá usar seu nome de usuário de login e passwor.

    
por user227495 07.12.2016 / 22:33