Lshell est l'un des moyens les plus simples et les plus efficaces de contrôler ce qu'un utilisateur peut faire.
lshell est un shell codé en Python, qui vous permet de restreindre l'environnement d'un utilisateur à des ensembles limités de commandes, de choisir d'activer/désactiver n'importe quelle commande sur SSH (par exemple, SCP, SFTP, rsync, etc.), de consigner les commandes de l'utilisateur, d'implémenter une restriction temporelle, et plus.
Si vous donnez à quelqu'un un compte shell, il peut voir tous les fichiers lisibles par le monde. Cela inclut de nombreux fichiers dans /etc
nécessaires au fonctionnement du système, y compris /etc/passwd
(qui contient les noms d'utilisateur mais pas les mots de passe).
Si vous autorisez l'utilisateur à se connecter uniquement à l'intérieur d'un chroot, il ne peut pas voir les fichiers en dehors du chroot. Cela signifie que vous devez mettre suffisamment de programmes, de bibliothèques, etc. dans le chroot - tout ce à quoi l'utilisateur doit avoir accès et toutes ses dépendances également.
Notez qu'un chroot ne protège que l'accès direct aux fichiers. L'utilisateur peut espionner diverses choses, y compris les noms et les arguments des processus en cours d'exécution de tous les utilisateurs (sauf si vous configurez des protections supplémentaires telles que SELinux). Si l'utilisateur n'a pas besoin de faire grand-chose, vous pouvez configurer des restrictions plus strictes (y compris empêcher l'utilisateur de créer ses propres exécutables) avec un shell restreint, mais la configuration d'un shell restreint est très délicate, donc je ne ' Je ne le recommande pas.
De nos jours, les machines virtuelles sont très bon marché. Vous avez le choix entre de nombreuses implémentations gratuites (mode utilisateur Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, …), et l'espace disque utilisé par une installation système supplémentaire est minime (et vous pourriez en avoir besoin pour le chroot de toute façon). Une machine virtuelle isole à peu près tout :fichiers, processus, réseau, … Sauf si vous avez des contraintes très inhabituelles, c'est la voie à suivre.
Une option consiste à les placer dans une session shell restreinte, telle que rbash [bash -r].
Il n'est pas clair à ce stade de ce que vous souhaitez accomplir exactement, cependant, en surface, les ACL de posix pour « autre » s'appliqueront au nouveau compte ainsi que tout ACL de groupe pour les groupes auxquels le compte appartient, tels que 'utilisateurs' par exemple.