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?

oeil de faucon
la source
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
    
oeil de faucon
la source
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é.

Needhi Agrawal
la source
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.

Imran Zahoor
la source