Erstellen eines UNIX-Kontos, das nur einen Befehl ausführt


12

Gibt es eine Möglichkeit, ein Benutzerkonto in Solaris zu erstellen, mit dem die Benutzer nur einen Befehl ausführen können? Keine Login-Shell oder sonst etwas. Ich könnte es möglicherweise mit /usr/bin/falsein machen /etc/passwdund nur den Benutzer dazu bringen ssh <hostname> <command>, aber gibt es eine schönere Möglichkeit, es zu tun?

Antworten:


14

Sie könnten einen erzwungenen Befehl verwenden, wenn die Benutzer nur über ssh eine Verbindung herstellen können. Immer wenn der Benutzer eine Verbindung über ssh mit einem bestimmten Schlüssel und einem bestimmten Benutzernamen herstellt, zwingen Sie ihn, einen Befehl (oder ein Skript oder) auszuführen, den Sie in den .ssh / authorized_keys festgelegt haben. Von den Benutzern ausgegebene Befehle werden ignoriert.

Beispielsweise:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

Nun, ihr hattet beide recht. Ich habe ein Skript erstellt, das ein Menü in der Eingabeaufforderung bereitstellt und den Befehl für die erzwungene Überprüfung in .ssh / authorized_keys auf dem Server vor dem Schlüssel für den autorisierten Benutzer verwendet. Dies ermöglicht es ihm nun, auf den Server zu ssh und an der Eingabeaufforderung wird ein nettes Menü mit mehreren auszuführenden Befehlen angezeigt. Sonst kann nichts ausgeführt werden. Glückliche Tage!
Will Dowling

1
Bearbeitet; Sie benötigen diese Optionen, um einen erzwungenen Befehl zu sichern: "Keine Portweiterleitung, Keine X11-Weiterleitung, Keine Agentenweiterleitung, Keine Pty".
Tobu

11

Sie können die Shell dieses Benutzers auf ein Skript einstellen, das nur den Befehl ausführt, den Sie zulassen möchten: Immer wenn sich der Benutzer anmeldet, wird der Befehl ausgeführt und der Benutzer abgemeldet. Und da es keine "vollständige Shell" gibt, musst du dich nicht mit dem Benutzer auseinandersetzen, der funky Sachen ausprobiert;)


0

Ich frage mich, ob Sie dies mit RBAC tun könnten und dem Benutzer eine privilegierte Shell (pfsh, pfcsh oder pfksh) geben und ein Profil für die Befehle erstellen könnten, die der Benutzer ausführen darf.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.