3 votes

Comment autoriser une connexion ssh anonyme à une machine Linux et n'exécuter qu'un seul programme ?

J'ai un jeu en mode texte installé sur un serveur Linux, et j'aimerais autoriser les connexions sur ce serveur via SSH, mais avec des restrictions.

La connexion doit aller directement au jeu qui lit les données du clavier à partir de stdin. Si le jeu se termine, l'utilisateur doit être immédiatement déconnecté du serveur. Alternativement, si l'utilisateur se connecte, il ne devrait y avoir qu'une seule commande disponible pour l'utilisateur, le jeu.

J'ai envisagé d'utiliser une interface web pour le jeu, mais il y a quelque chose dans le fait de jouer au jeu dans un terminal qui me convient parfaitement. S'il vous plaît, ne répondez pas par "c'est une mauvaise idée..." ou ses variantes parce que c'est une échappatoire facile. Je veux juste savoir si quelqu'un connaît une solution.

3voto

RedGrittyBrick Points 78148

L'approche traditionnelle consiste à modifier le script de connexion de l'utilisateur pour piège interruptions, exécuter le programme et se déconnecter.

Vous pouvez définir le login Shell de l'utilisateur comme étant un Shell restreint (man rksh) "Rksh est une version restreinte de l'interpréteur de commandes ksh ; il est utilisé pour configurer des noms de login et des environnements d'exécution dont les capacités sont plus contrôlées que celles du Shell standard." Ou utilisez bash dans restreint mode.

Supprime l'accès en écriture de l'utilisateur à ses scripts de connexion (et à tout ce sur quoi le programme n'a pas besoin d'écrire).

Pour plus de sécurité chroot l'utilisateur.

2voto

verveguy Points 931

Vous pourriez peut-être définir votre binaire de jeu comme login Shell dans /etc/passwd.

Mais je n'ai jamais essayé moi-même.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X