Concedendo a um usuário sftp acesso ao diretório / var / www

12

Eu criei um usuário e criei seu diretório pessoal /var/www/mysite/ftpdir

Também adicionei uma entrada de usuário Corresponder a esse usuário sshd_configcom um ChrootDirectory que aponta para/var/www/mysite

Eu reiniciei sshpara pegar isso.

Quando eu faço login com sftp - o usuário ainda acessa o diretório antigo do usuário, ou seja, /home/user

o que estou perdendo?

Hawkeye
fonte
que tal você ligar /home/userpara o alvo?
Ish

Respostas:

17

Este é o processo:

  1. Adicione o usuário ao grupo: sudo usermod -aG www blubcomo em Qual é a maneira mais simples de editar e adicionar arquivos a "/ var / www"?

    ou apenas use sudo adduser <username> www-data

  2. Instalar vsftpd sudo apt-get install vsftpd
  3. Configure o vsftpd para acesso remoto: sudo nano /etc/vsftpd.confe dentro do conjunto de arquivos

    chroot_local_user=YES
    

    e verifique se isso está comentado:

    #chroot_list_enable=YES
    

    conforme documentação .

  4. Reinicie o nsftp: sudo service vsftpd restart
  5. Configure o diretório inicial do usuário para o diretório da web (não em /home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Configurar ssh chroot

    sudo nano /etc/ssh/sshd_config
    

    adicione o seguinte ao final:

    Subsystem  sftp  internal-sftp
    Match user <username>
        ChrootDirectory /var/www/site
        ForceCommand internal-sftp
    AllowTcpForwarding no
    

    e garanta que, mais adiante no arquivo, isso seja comentado (ou seja, antes do que você acabou de adicionar)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Reinicie o ssh

    sudo service ssh restart
    
  8. Mude as permissões para o apache:

    chown root:root /var/www
    chown root:root /var/www/site
    chmod 755 /var/www
    

    Como nos documentos aqui .

  9. Verifique se seu diretório tem acesso a dados www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
Hawkeye
fonte
2
Eu segui essas instruções, mas a conexão foi recusada no final quando adicionei essas linhas Subsistema sftp internal-sftp Usuário de correspondência <nome do usuário> ChrootDirectory / var / www / site ForceCommand internal-sftp AllowTcpForwarding no
Ata
1
Eu também tenho o mesmo problema com o Ubuntu 14.04
torayeff
Eu também tenho o mesmo problema!
maxisme 17/03/2015
4
Como na Etapa 9 você precisa chown root:root /var/www/siteapenas revertê-la para sudo chown -R www-data:www-data /var/www/sitea Etapa 10, isso é deliberado?
JohnnyQ
Isto não está trabalhando para mim
Linga
2

Se você está recebendo um erro de conexão recusada no final, verifique se "Subsystem sftp internal-sftp" está localizado após "UsePAM yes" . Caso contrário, atualize e reinicie o ssh e funcionou.

Needhi Agrawal
fonte
0

Eu tenho um método simples e que funcionou para mim no apache.

sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart

É isso caso você ainda enfrente o uso de problemas de permissão chmode os chownresolva de acordo com suas necessidades.

Imran Zahoor
fonte