configurando o sftp para entrar no servidor com o arquivo zilla

1

Eu tenho um ec2 instance on aws que já instalou alguns wordpress nele. Pensei em deixar mais pessoas lidando com o seu próprio projeto e também entrar no servidor usando o terminal, se ainda quiser.

Tenho acompanhado tutoriais como Como configurar um servidor SFTP restrito no Ubuntu?

e alguns outros. Eu imaginei que todos eles apenas ensinam como sftp em sua própria pasta pessoal, e também as etapas continuam dizendo addUser , mas alguns usuários já existiam que removê-los pode causar algum problema.

Como posso dar ao usuário existente a permissão para usar o sftp para projetos wordpress?

Digamos que todos os meus projetos do wordpress já estejam em /var/www/ , o que já foi configurado com www-data:www-data .

Realmente novo com a configuração de coisas como esta.

Agradecemos antecipadamente por qualquer ajuda.

    
por Dora 12.04.2018 / 02:49

1 resposta

1

Aqui, suponho que você consiga executar ssh / sftp no diretório pessoal do usuário e deseje editar (com seu usuário) arquivos e pastas em /var/www , que são de propriedade de user e :group - www-data:www-data (sem alterar a propriedade).

Aqui estou assumindo também o tópico Como evitar o uso do sudo ao trabalhar em / var / www? doesn ' cobrir suas necessidades. Por exemplo, você não deseja alterar as permissões em /var/www .

Acho que a maneira mais fácil e clara de resolver essa tarefa é montar /var/www (ou determinado diretório interno) no diretório pessoal do usuário e alterar o proprietário para seu usuário e: group. Isso pode ser conseguido pela ferramenta bindfs :

sudo apt update && sudo apt install bindfs

Aqui, montaremos todo o diretório /var/www em um diretório chamado também www/ e localizado no diretório inicial do usuário.

mkdir $HOME/www
sudo bindfs -u $(id -u) -g $(id -g) --create-for-user=www-data --create-for-group=www-data /var/www /home/<user>/www
  • As substituições de comando $(id -u) e $(id -g) retornarão o UID e o GID do atual <user> . Onde <user> é um nome de usuário real.

  • Se você quiser executar o comando acima para outro usuário, use $(id -u <user>) e $(id -g <user>) .

  • Para mais detalhes sobre os argumentos usados com bindfs rad sua página de manual - man bindfs .

  • Se você quiser desmontar ~/www ( $HOME/www ) use o comando:

    sudo fusermount -u ~/www
    

Para montar /var/www em ~/www automaticamente durante a inicialização do sistema, adicione a seguinte linha na parte inferior de /etc/fstab :

bindfs#/var/www /home/<user>/www fuse force-user=<uid>,force-group=<gid>,create-for-user=www-data,create-for-group=www-data 0 0
  • Nota: você deve substituir <user> pelo nome de usuário real; também deve substituir <uid> e <gid> pelo UID real e GID do <user> , você pode encontrá-los pelos comandos: id -u <user> e id -u <user> .
  • Para ver o resultado, reinicialize o sistema ou execute:

    sudo mount -a    # maybe you should execute 'sudo fusermount -u ~/www' first 
    

Aqui está uma demonstração animada de como isso funciona:

Atualização:

A única limitação dessa abordagem que descobri é que, quando você altera a propriedade do diretório de ligação, isso altera a propriedade também para o diretório de origem. Por exemplo, o próximo comando não é uma boa ideia:

chown -R $(id -u):$(id -g) $HOME/www

Talvez exista uma opção adequada para o comando bindfs que impedirá que isso aconteça, mas não posso dizer isso no momento.

    
por pa4080 12.04.2018 / 11:16