web-dev-qa-db-fra.com

Autoriser un utilisateur sftp à accéder à un répertoire / var / www

J'ai créé un utilisateur et créé son répertoire personnel /var/www/mysite/ftpdir

J'ai également ajouté une entrée de correspondance d'utilisateur pour cet utilisateur dans sshd_config avec un ChrootDirectory qui pointe vers /var/www/mysite

J'ai redémarré ssh pour le récupérer.

Lorsque je me connecte avec sftp - l'utilisateur accède toujours à son ancien répertoire, à savoir /home/user

Qu'est-ce que je rate?

12
hawkeye

C'est le processus:

  1. Ajoutez l'utilisateur au groupe: Sudo usermod -aG www blub as Quel est le moyen le plus simple de modifier et d'ajouter des fichiers dans "/ var/www"?

    ou utilisez simplement Sudo adduser <username> www-data

  2. Installez vsftpd Sudo apt-get install vsftpd
  3. Configurez vsftpd pour l'accès à distance: Sudo nano /etc/vsftpd.conf et à l'intérieur du jeu de fichiers

    chroot_local_user=YES
    

    et assurez-vous que cela est commenté:

    #chroot_list_enable=YES
    

    selon documentation .

  4. Redémarrez nsftp: Sudo service vsftpd restart
  5. Configurez le répertoire de base de l'utilisateur sur le répertoire Web (pas dans /home):

    Sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Configurez ssh chroot

    Sudo nano /etc/ssh/sshd_config
    

    ajoutez ce qui suit à la fin:

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

    et assurez-vous que plus loin dans le fichier que cela est commenté (c'est-à-dire avant celui que vous venez d'ajouter)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Redémarrer ssh

    Sudo service ssh restart
    
  8. Changez les permissions pour Apache:

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

    Comme dans le docs here .

  9. Assurez-vous que votre répertoire dispose d'un accès www-data

    Sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
16
hawkeye

Si vous obtenez une erreur de connexion refusée à la fin, assurez-vous que "Le sous-système sftp internal-sftp" est placé après "UsePAM yes". Sinon, mettez à jour et redémarrez ssh et cela a fonctionné.

2
Needhi Agrawal