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?
C'est le processus:
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
Sudo apt-get install vsftpd
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 .
Sudo service vsftpd restart
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>
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
Redémarrer ssh
Sudo service ssh restart
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 .
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
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é.