Je voudrais créer un utilisateur qui ne peut faire qu'une seule chose: via ssh, spécifiez un script (et des arguments de ligne de commande pour le script) qui réside dans un dossier particulier (pour les besoins de cette question, appelons-le /local/remote_only_scripts/foo
) et faire exécuter ce script et retourner sa sortie.
Pour être clair, quelques exemples de choses que je ne veux pas que l'utilisateur puisse faire:
- Connectez-vous localement au compte. L'application de connexion est
/bin/login
. Ce n'est pas un script dans le/local/remote_only_scripts/foo
dossier, il ne doit donc pas être appelé par l'utilisateur. - Connectez-vous à distance au compte. Encore une fois, la connexion (est-ce ce que ssh appelle?) N'est pas un script dans le dossier correspondant.
- Liste le contenu du répertoire. ls est dedans
/bin/ls
. Ce n'est pas un script dans le répertoire approprié. - Modifiez un fichier dans ce répertoire. emacs, vi, gedit la plupart des autres éditeurs ne sont pas des scripts dans ce répertoire.
- Affichez le contenu d'un fichier dans ce répertoire.
- Exécutez un fichier dans ce répertoire qu'il n'est pas autorisé à exécuter.
Notez que ce sont des exemples, il y a beaucoup d'autres actions que je ne veux pas que l'utilisateur puisse faire. Lorsque vous envisagez une action, demandez "est-ce que cela se fait par un script en /local/remote_only_scripts/foo
?" si la réponse est non, l'utilisateur ne devrait pas pouvoir le faire. Si la réponse est oui, l'utilisateur devrait pouvoir le faire.
PS: Permettez-moi de clarifier ce que je veux dire par "ajouter un utilisateur". Je ne veux pas dire ajouter un utilisateur à un sous-système ssh. Je veux plutôt dire ajouter un utilisateur au système informatique. Ainsi, par exemple, j'ai un système exécutant Debian stable, appelez-le par son adresse, www.hg.bar.com. Je veux ajouter un utilisateur (via kuser, users-admin ou useradd ou d'une manière similaire) l'appeler hg_guest. hg_guest ne peut pas se connecter localement ou faire l'une des choses dans la liste ci-dessus. Tout ce que hg_guest peut faire est d'exécuter des scripts "à distance". J'ai dit qu'il devrait pouvoir le faire via ssh, mais en y réfléchissant maintenant, peut-être que lui permettre d'utiliser ssh peut lui permettre de se connecter localement, donc un autre mécanisme peut être nécessaire.