Je souhaite permettre à des utilisateurs de se connecter sur ma machine en ssh dans une cage (chroot).
J'ai créé un fichier : /bin/chrootshell
#!/bin/bash
sudo /usr/sbin/chroot /home/$USER /bin/bash
Et j'ai rajouter dans /etc/sudoers (ou baduser est le login d'un de mes utilisateur):
baduser ALL=NOPASSWD: /usr/sbin/chroot /home/baduser /bin/bash
J'ai recréé dans le home de mon utilisateur (sa racine chroot) l'arborescence suivante pour y intégrer bash et les autres commandes auxquelles il aura accès:
bin/
lib/
home/baduser
Lorsque que mon utilisateur se connecte, il arrive dans sa racine (/) qui correspond à /home/baduser dans la véritable arborescence. Est-il possible de le faire arriver directement dans /home/baduser/home/baduser lorsqu'il se connecte? ce qui correspond à "/home/baduser" quand il est chrooté.
Un autre petit détail me fait du tord, je souhaiterai que l'utilisateur puisse utiliser la commande scp pour pouvoir déposer des fichiers sur son compte. Malheureusement cela ne fonctionne pas... il est impossible d'envoyer des fichiers. Il me demande le mot de passe pour se connecter et ensuite plus rien. aucun message, le transfert n'a pas lieu.
Si une personne a réponse à mes questions, je lui en serai infiniment reconnaissant. Merci :-)
# Autres solutions ?
Posté par Trois Singes . Évalué à 1.
La solution me semble un peu compliquée. Quelle distribution utilises-tu ? Pour Debian, je me souviens d'une méthode assez efficace utilisant libpam-chroot :
http://www.debian.org/doc/manuals/securing-debian-howto/ap-c(...)
Doit sans doute être applicable à d'autres distributions.
Une autre possibilité est de monter deux serveurs SSH, l'un qui écoute sur un port non standard (pour les admin) et qui tourne hors chroot, et un qui est chrooté, qui écoute sur le port 22 standard, et qui est fait spécialement pour tes utilisateurs.
Si j'ai un peu répondu à côté, en te proposant d'autres méthodes, j'en suis désolé ;-)
[^] # Re: Autres solutions ?
Posté par NeoX . Évalué à 1.
si le chroot a seulement pour but de limiter l'utilisateur à son home,
il suffit d'utiliser une verison modifiée de ssh (de memoire il faut recompiler ssh avec l'option chroot) et de mettre /home/./user comme repertoire home pour le user
le . indiquant alors qu'il faut bloquer l'utilisateur dans son home.
[^] # Re: Autres solutions ?
Posté par Mathieu . Évalué à 1.
libpam-chroot ne serait pas plus utile pour debootstrap ?
Sinon je souhaite surtout pouvoir faire du sftp et utiliser scp sur le compte chrooté. Faut-il avoir importer des librairies particulières et/ou des binaires dans le répertoire de l'utilisateur?
[^] # Re: Autres solutions ?
Posté par Jump3R (site web personnel) . Évalué à 1.
Pas besoin de patch ssh, il cree un bon vieux chroot.
Ensuite un petit : mount --bind /var/sftp/incoming /home/bob/incoming et voila, tu partages les dossiers que tu veux avec tes users. Ne pas oublier que les liens symboliques ne fonctionne que dans l'environnement chrooté et non vers l'exterieur.
[^] # Re: Autres solutions ?
Posté par Mathieu . Évalué à 1.
Je viens de tester ce script et ça répond exactement à mes besoins.
Je vais regarder ce qu'il fait plus précisement pour comprendre.
Merci beaucoup ! =)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.