Droit user FTP

Bonjour,
Je cherche à réaliser quelque chose qui me parais simple mais je n’y arrive absolument pas.

J’ai un serveur debian et je souhaite créer un utilisateur qui aura un seul et unique droit :

Accéder en FTP ou SFTP (via filezilla ou autres) au dossier /var/www/videos et qu’il puisse avoir tous les droits sur ce dossier. Par contre je ne veux pas qu’il puisse remonter arborescence ou aller ailleurs.

Pouvez-vous m’aiguiller pour résoudre ce problème.
Merci

installer le serveur sftp; créer l’utilisateur qui aura accès au serveur; le chrooter dans /var/www/videos; donner les droits 757 sur le dossier videos et utiliser filezilla qui est le plus pratique.

De base, je peux me connecter en sftp sur le serveur. Je n’ai rien installé de spécifique.

Et comment fait ton pour chrooter l’user dans le dossier /var/www/videos ?

Merci de ton aide

c’est dans le fichier /etc/ssh/sshd_config que le chroot est défini; c’est tout la fin que sont écrites les lignes concernant la config pour sftp.
Je te donne le modèle:

Match Group sftp_chroot
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no

il faut créer le groupe sftp_chroot; ajouter ton utilisateur sftp au groupe sftp_chroot; créer le dossier /var/www/videos et donner les droits 757 au dossier videos pour que ton utilisateur sftp puisse écrire dedans.

J’ai suivi tes consignes :

  • ajouté le bloc :
Match Group sftp_chroot
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no

à la fin du fichier /etc/ssh/sshd_config

  • créé le groupe sftp_chroot
  • ajouté mon utilisateur au groupe sftp_chroot
    -puis appliquer les droits 757 au dossier /var/www/videos

Mais lorsque je me connecte avec mon utilisateur en SFTP, j’arrive toujours dans son dossier home et il est possible de naviguer dans l’arborescence.
Ne faut-il pas recharger le fichier /etc/ssh/sshd_config pour que les modifs soient prises en compte ? Si oui comment ?

oui; j’ai oublié de te dire de relancer le service ssh en utilisant la commande:

/etc/init.d/ssh restart

le user du sftp doit être autre que le user de ta session ; utilises filezilla.

Merci, mais après avoir redémarré le service ssh, impossible pour mon user de se connecter avec filezilla. J’obtiens cette erreur sur filezilla :

Server unexpectedly closed network connection
Erreur :	Impossible d'établir une connexion au serveur

En supprimant

Match Group sftp_chroot
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no

dans le fichier /etc/ssh/sshd_config et en relançant le service ssh, mon user peut se reconnecter en SFTP, mais il accède dans son “home” et à accès à l’arborescence du système.

c’est une affaire de configuration dans ton fichier /etc/ssh/sshd_config; le user du ftp est il autorisé à se connecter? le user du sftp doit être autre que ton user pour te connecter.

Tu donnes trop de droit sur ce répertoire !!!

  • 755 suffit pour /var/www + les droits seulement pour ‘’root’’
  • ET, 705 suffit largement pour /var/www/dossier_videos, avec les droits pour sftp:sftp_group

:wink:

C’est le serveur, et seul le serveur qui te restituera vraiment la raison pour laquelle ton client SFTP n’a pas pu se connecter, donc tu vas regarder le bon fichier log sur le serveur. /var/log/auth.log normalement !


J’ose espérer que le serveur SSH est bien configuré que pour n’accepter des clés ed22519 - correctement créées, n’autoriser que des chiffrements élevés, idem pour l’algorythme d’échange des clés et les MAC.</fin de réflexions très personnelles>

tout à fait d’accord avec toi; mais chez moi, en tant que user, sur ma bécane, je veux pouvoir charger des fichiers sur le répertoire /var/www/videos (videos appartient à root) sans me casser la tête et c’est pour ça que je me suis accordé les droits 757; où 707 ce qui pour moi reviendrait au même. Seules quelques personnes connues de moi se connectent sur mon sftp et quand le serveur est inutilisé il n’est pas ouvert. Ce qui est bon pour moi ne l’est pas nécessairement pour les autres, chacun adapte en fonction de son utilisation.

merci de votre aide,
Je pense bien avoir réalisé les étapes ci-dessus, mais mon utilisateur n’arrive toujours pas à se connecter suite à la modification du fichier /etc/ssh/sshd_config

Je suis allé voir les logs dans /var/log/auth.log et j’obtiens ce message :

Accepted password for bkc from xx.xx.xx.xx port 7305 ssh2
Sep 27 10:02:10 vps5579 sshd[26549]: pam_unix(sshd:session): session opened for user bkc by (uid=0)
Sep 27 10:02:10 vps5579 sshd[26555]: fatal: bad ownership or modes for chroot directory "/var/www"
Sep 27 10:02:10 vps5579 sshd[26549]: pam_unix(sshd:session): session closed for user bkc

vous avez une idée de ce qui peut bloquer ?

que dit la commande:

ls -l /var

ça me retourne ça :

total 40
drwxr-xr-x  2 root     root     4096 Sep 27 06:25 backups
drwxr-xr-x  7 root     root     4096 Jun 10 12:46 cache
drwxr-xr-x 24 root     root     4096 Jun 15 18:29 lib
drwxrwsr-x  2 root     staff    4096 Nov 19  2017 local
lrwxrwxrwx  1 root     root        9 Jun 10 12:42 lock -> /run/lock
drwxr-xr-x  5 root     root     4096 Sep 27 06:25 log
drwxrwsr-x  2 root     mail     4096 Jun 10 12:42 mail
drwxr-xr-x  2 root     root     4096 Jun 10 12:42 opt
lrwxrwxrwx  1 root     root        4 Jun 10 12:42 run -> /run
drwxr-xr-x  4 root     root     4096 Jun 10 12:42 spool
drwxrwxrwt  5 root     root     4096 Sep 27 13:39 tmp
drwxr-xr-x  3 www-data www-data 4096 Sep 26 13:59 www

le répertoire www doit appartenir à root:root avec les droits 755

J’ai passé le dossier www chez root, du coup j’obtiens ceci :

total 40
drwxr-xr-x  2 root root  4096 Sep 27 06:25 backups
drwxr-xr-x  7 root root  4096 Jun 10 12:46 cache
drwxr-xr-x 24 root root  4096 Jun 15 18:29 lib
drwxrwsr-x  2 root staff 4096 Nov 19  2017 local
lrwxrwxrwx  1 root root     9 Jun 10 12:42 lock -> /run/lock
drwxr-xr-x  5 root root  4096 Sep 27 06:25 log
drwxrwsr-x  2 root mail  4096 Jun 10 12:42 mail
drwxr-xr-x  2 root root  4096 Jun 10 12:42 opt
lrwxrwxrwx  1 root root     4 Jun 10 12:42 run -> /run
drwxr-xr-x  4 root root  4096 Jun 10 12:42 spool
drwxrwxrwt  5 root root  4096 Sep 27 13:39 tmp
drwxr-xr-x  3 root root  4096 Sep 26 13:59 www

J’ai relancé le service ssh, et je n’arrive toujours pas à me connecter avec mon user via sftp

que dit:

cat /etc/group |grep sftp_chroot

j’ai ce retour :
sftp_chroot:x:1004:bkc

en utilisant le user bkc vérifie si tu peux te connecter en local en ligne de commande.

sftp -Pport-sftp bkc@ip-locale

Chose très bizarre : lorsque je tente de me connecter avec “bkc” via putty, lorsque je valide mon mot de passe, putty se ferme brutalement…

je ne connais pas putty; mais je pense qu’il y a un problème de configuration de sshd_config; peut on voir ce fichier?