Si un utilisateur possède, loginShell=/sbin/nologin
il est toujours possible de
ssh user@machine [command]
en supposant que l'utilisateur a des clés ssh appropriées dans son répertoire personnel qui peuvent être utilisées pour s'authentifier?
Mon objectif est de garder l'utilisateur en tant que nologin, mais toujours capable d'exécuter des commandes sur quelques autres machines sur le réseau (similaire à son utilisation via 'sudo -u'), et je me demande si c'est un cours raisonnable.
ssh
login
account-restrictions
Centimane
la source
la source
command
est exécuté à la place du shell de connexion./sbin/nologin
tant que shell. Si votre souci est la sécurité du compte, il suffit de désactiver l'authentification par mot de passe et d'utiliser les clés ssh./sbin/nologin
alors l'utilisateur ne pourra pas se connecter ou exécuter des commandes sur la machine. cronjobs peut être exécuté en tant qu'utilisateur etsftp
peut être configuré pour ouvrir des sessions, mais l'ouverture d'un shell via ssh ne se produira pasRéponses:
La définition
/sbin/nologin
du shell de l'utilisateur (ou/bin/false
ou/bin/true
, qui sont presque équivalents ) interdit à l'utilisateur de se connecter pour exécuter quelque commande que ce soit. SSH invoque toujours le shell de connexion de l'utilisateur pour exécuter des commandes, vous devez donc définir le shell de connexion sur celui qui est capable d'exécuter certaines commandes.Il existe plusieurs shells restreints qui permettent aux utilisateurs d'exécuter seulement quelques commandes. Par exemple rssh et scponly sont tous deux ces coquilles qui permettent à l'utilisateur d'exécuter quelques commandes prédéfinies ( par exemple
scp
,sftp-server
,rsync
, ...). Voir aussi Restreindre l'accès utilisateur sous linux et Avez-vous besoin d'un shell pour SCP?la source
Il semble que la réponse soit non.
avec les clés ssh en place ne donne que:
plutôt que l'exécution de la commande, il me semble que je vais devoir lui donner accès à bash.
la source
Je ne sais pas si cela est possible (devrait être facile à tester cependant) mais il existe une fonctionnalité qui répond probablement à votre question d'une certaine manière et en tout cas résout votre problème.
Vous pouvez ajouter une commande à la ligne de touche dans
authorized_keys
. Dans ce cas, cette commande est exécutée, rien d'autre. Je suppose que cela fonctionne/sbin/nologin
car le shell doit être ignoré de toute façon.Mais vous auriez besoin d'une clé différente pour chaque commande que vous autorisez.
la source
authorized_keys
est exécutée par le shell de connexion, donc non, cela ne fonctionne pas (non sans configuration supplémentaire non triviale). (Comment le fait de voter contre une mauvaise réponse est-il "stupide"? S'il vous plaît, respectez les autres .)