GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je donner un coquillage à quelqu'un en toute sécurité ?

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.


Linux
  1. CentOS / RHEL :Comment changer le shell de connexion de l'utilisateur

  2. Comment puis-je faire une division avec des variables dans un shell Linux ?

  3. Comment puis-je trouver ma version de shell à l'aide d'une commande Linux ?

  4. Impossible d'ajouter un utilisateur au groupe docker

  5. Comment puis-je créer un utilisateur sans connexion ?

Comment puis-je modifier le groupe par défaut d'un utilisateur sous Linux ?

(Comment) puis-je créer un tmpfs en tant qu'utilisateur régulier (non root) ?

Comment puis-je rechercher un nom d'utilisateur par identifiant sous Linux?

Comment puis-je créer un utilisateur uniquement pour sftp ?

Comment puis-je renommer un utilisateur unix ?

Comment démarrer un deuxième shell en mode mono-utilisateur ?