Je veux créer des utilisateurs pour sftp avec un accès limité à des dossiers spécifiques
Ma structure de dossiers ressemble à ceci:
/var/www/site1/files/
/var/www/site2/files/
/var/www/site3/files/
Je veux créer sftp user1 pour accéder à /var/www/site1/files/
uniquement pour télécharger des fichiers de site Web à l'aide de filezila et ne peut afficher aucun autre dossier
et de même pour user2 avec un accès limité à /var/www/site2/files/
et pour user3 avec un accès limité à /var/www/site3/files/
Vous avez à peu près suivi la chose.
La meilleure façon est de le faire:
Montez chacun des 3 répertoires sur /home
répertoires en ajoutant les lignes suivantes dans /etc/fstab
:
/var/www/site1/files/ /home/site1/htdocs/ bind 0 0
/var/www/site2/files/ /home/site2/htdocs/ bind 0 0
/var/www/site3/files/ /home/site3/htdocs/ bind 0 0
Utilisation mount -a
pour lancer instantanément les montures.
Assurez-vous d'avoir ajouté les utilisateurs site1, site2, site3 au même groupe (par exemple, sftpusers ou sftponly). Vous pouvez utiliser ces commandes pour ajouter les utilisateurs aux groupes:
usermod -aG sftponly site1
usermod -aG sftponly site2
usermod -aG sftponly site3
Faire le /home/{site1,site2,site3}
répertoires de départ pour les utilisateurs correspondants utilisant:
usermod -d /home/site1 site1
usermod -d /home/site2 site2
usermod -d /home/site3 site3
Ajoutez ce qui suit dans votre /etc/ssh/sshd_config
:
Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
Enfin, redémarrez le service ssh en utilisant:
service ssh restart
Voir cet article sur Digital Ocean pour plus de détails.
Après avoir suivi la réponse de krishna chalise vous devrez peut-être ajuster la propriété et les autorisations.
Par exemple, pour l'utilisateur site1:
chown root:root /home/site1
chmod 755 /home/site1
cd /home/site1
chown site1:sftponly