Wenn ein Benutzer hat, loginShell=/sbin/nologin
ist es immer noch möglich
ssh user@machine [command]
Angenommen, der Benutzer verfügt über die richtigen SSH-Schlüssel in seinem Ausgangsverzeichnis, die zur Authentifizierung verwendet werden können.
Mein Ziel ist es, den Benutzer als Nologin zu behalten, aber dennoch Befehle auf einigen anderen Computern im Netzwerk ausführen zu können (ähnlich wie bei der Verwendung durch 'sudo -u'), und ich frage mich, ob dies ein vernünftiger Kurs ist.
ssh
login
account-restrictions
Centimane
quelle
quelle
command
wird anstelle der Login-Shell ausgeführt./sbin/nologin
als Shell zunichte. Wenn Sie Bedenken hinsichtlich der Sicherheit des Kontos haben, ist es ausreichend, die Kennwortauthentifizierung zu deaktivieren und SSH-Schlüssel zu verwenden./sbin/nologin
Benutzer nicht anmelden oder Befehle auf dem Computer ausführen. Cronjobs können als Benutzer ausgeführt undsftp
zum Öffnen von Sitzungen konfiguriert werden, aber das Öffnen einer Shell über SSH wird nicht stattfindenAntworten:
Die Einstellung
/sbin/nologin
als Shell des Benutzers (oder/bin/false
oder/bin/true
, die fast gleichwertig sind ) verhindert, dass sich der Benutzer anmeldet, um einen Befehl auszuführen. SSH ruft immer die Anmeldeshell des Benutzers auf, um Befehle auszuführen. Daher müssen Sie die Anmeldeshell auf eine festlegen, die einige Befehle ausführen kann.Es gibt mehrere eingeschränkte Shells, mit denen Benutzer nur wenige Befehle ausführen können. Zum Beispiel rssh und scponly sind beide solche Schalen , die dem Benutzer erlauben , einige vordefinierte Befehle auszuführen (wie
scp
,sftp-server
,rsync
, ...). Siehe auch Benutzerzugriff unter Linux einschränken und Benötigen Sie eine Shell für SCP?quelle
Es scheint, die Antwort ist nein.
Wenn SSH-Schlüssel vorhanden sind, ergibt sich nur Folgendes:
Anstatt den Befehl auszuführen, muss ich ihm anscheinend Zugriff auf Bash gewähren.
quelle
Ich weiß nicht, ob das möglich ist (sollte aber leicht zu testen sein), aber es gibt eine Funktion, die Ihre Frage wahrscheinlich auf eine bestimmte Weise beantwortet und auf jeden Fall Ihr Problem löst.
Sie können der Tastenzeile in einen Befehl hinzufügen
authorized_keys
. In diesem Fall wird dieser Befehl ausgeführt, sonst nichts. Ich gehe davon aus, dass dies funktioniert,/sbin/nologin
da die Shell sowieso ignoriert werden sollte.Sie benötigen jedoch für jeden Befehl, den Sie zulassen, einen anderen Schlüssel.
quelle
authorized_keys
wird von der Login-Shell ausgeführt. Nein, dies funktioniert nicht (nicht ohne zusätzliche nicht triviale Konfiguration). (Wie ist es, eine falsche Antwort „dumm“ abzustimmen? Bitte respektieren Sie andere .)