web-dev-qa-db-fra.com

Linux Shell pour limiter les utilisateurs de sftp à leurs répertoires personnels?

Je dois donner à SFTP l’accès à un répertoire situé dans la racine Web de mon serveur. J'ai configuré ben_files en tant qu'utilisateur et défini son répertoire personnel sur 

/var/www/vhosts/mydomain.com/files

Tout va bien s'il se connecte avec un vieux FTP ordinaire - il est limité à ce répertoire, mais pour activer SFTP, je devais l'ajouter à bin/bash Shell, ce qui ouvre soudainement tout mon serveur ...

Est-il possible de lui donner un accès SFTP sans ouvrir tous mes répertoires? J'aimerais vraiment qu'il soit limité à sa maison;)

Merci!

33
MrFidge

OpenSSH≥4.8 prend en charge une directive ChrootDirectory.

Ajoutez à /etc/sshd_config ou /etc/ssh/sshd_config ou quelque soit le fichier de configuration global sshd de votre configuration:

 Faites correspondre l'utilisateur ben_files 
 # Les deux directives suivantes forcent ben_files à être chrooté 
 # et seulement sftp disponible. Aucune autre configuration de chroot n'est requise .
 ChrootDirectory /var/www/vhosts/mydomain.com/files
 ForceCommand internal-sftp 
 # Pour plus de paranoïa, interdisez tous les types de redirection de ports .
 AllowTcpForwarding no 
 GatewayPorts no 
 X11No de renvoi__.
46
ephemient

Vous pouvez essayer de définir son shell sur /bin/rbash

Shell restreint Si bash est démarré avec le nom rbash, ou l’option -r est fourni à invocation, le shell devient restreint. Un shell restreint est utilisé pour mettre en place un environnement plus contrôlé que le shell standard. Il se comporte de manière identique à bash à l'exception de ce qui suit sont non autorisé ou non exécuté:

   ·      changing directories with cd

et plus encore ...

Assurez-vous de bien comprendre ce qui est permis et interdit avant de l'utiliser.

3

Jetez un oeil à rssh . Il est peut-être déjà emballé pour votre distribution o/s.

3
Ned Deily

Utilisez pam_chroot.

Voici un bon manuel: http://www.howtoforge.com/chroot_ssh_sftp_debian_etch

0
rvs