Conceder acesso de usuário sftp a um diretório / var / www

12

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

Eu também adicionei uma entrada de usuário Match para este usuário em sshd_config com um ChrootDirectory que aponta para /var/www/mysite

Eu reiniciei ssh para pegar isso.

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

O que estou perdendo?

    
por hawkeye 29.05.2012 / 15:59

2 respostas

15

Este é o processo:

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

    ou use apenas sudo adduser <username> www-data

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

    chroot_local_user=YES
    

    e garantir que isso seja comentado:

    #chroot_list_enable=YES
    

    de acordo com a documentação .

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

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Configure o 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 assegure-se de 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. Altere as permissões do apache:

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

    Como nos documentos aqui .

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

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
por hawkeye 30.05.2012 / 14:06
2

Se você está recebendo erro de conexão recusada no final, certifique-se de que "Subsistema sftp interno-sftp" seja colocado após "UsePAM yes" . Se não, atualize e reinicie o ssh e funcionou.

    
por Needhi Agrawal 28.07.2015 / 13:47