Octroi à un utilisateur sftp d'un accès à un répertoire / var / www


12

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

J'ai également ajouté une entrée utilisateur Match pour cet utilisateur sshd_configavec un ChrootDirectory qui pointe vers/var/www/mysite

J'ai recommencé sshà ramasser ça.

Lorsque je me connecte avec sftp - l'utilisateur va toujours à son ancien répertoire, c'est-à-dire /home/user

Qu'est-ce que je rate?


que diriez-vous de lien symbolique /home/uservers la cible?
ish

Réponses:


17

Voici le processus:

  1. Ajoutez l'utilisateur au groupe: sudo usermod -aG www blubcomme dans 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. Installer vsftpd sudo apt-get install vsftpd
  3. Configurer vsftpd pour l'accès à distance: sudo nano /etc/vsftpd.confet à l'intérieur de l'ensemble de fichiers

    chroot_local_user=YES
    

    et assurez-vous que cela est commenté:

    #chroot_list_enable=YES
    

    selon la documentation .

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

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Configurer 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 haut dans le fichier, cela est commenté (c'est-à-dire avant celui que vous venez d'ajouter)

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

    sudo service ssh restart
    
  8. Modifiez les autorisations pour apache:

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

    Comme dans les documents ici .

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

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    

2
J'ai suivi ces instructions, mais je suis arrivé connexion refusée à la fin quand j'ajouter ces lignes sous - système de SFTP interne de l' utilisateur match <nom d' utilisateur> ChrootDirectory / var / www / site ForceCommand-sftp interne AllowTcpForwarding pas
Ata

1
J'ai également le même problème avec Ubuntu 14.04
torayeff

J'ai le même probléme!
maxisme

4
Comment se fait-il qu'à l'étape 9, vous n'ayez chown root:root /var/www/sitequ'à revenir sudo chown -R www-data:www-data /var/www/siteà l'étape 10, est-ce délibéré?
JohnnyQ

Cela ne fonctionne pas pour moi
Linga

2

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


0

J'ai une méthode simple et cela a fonctionné pour moi pour apache.

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

C'est tout au cas où vous rencontrez toujours des problèmes d'autorisation chmodet chownpour les résoudre en fonction de vos besoins.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.