![Wie melde ich mich als normaler Benutzer ohne Passwort an?](https://rvso.com/image/1502916/Wie%20melde%20ich%20mich%20als%20normaler%20Benutzer%20ohne%20Passwort%20an%3F.png)
Ich habe mich gefragt, ob mir jemand mit meinem Skript helfen kann.
Ich habe 2 Server. Nennen wir sie Server A und Server B. Auf Server B ist eine Software installiert, die ich von Server A aus ausführen möchte. Ich kann die Software nicht auf Server A installieren.
Ich muss Benutzern erlauben, eine andere Software auf Server A auszuführen, die dann ein Skript aufruft, um die Software auf Server B aufzurufen und einen Befehl auszuführen.
Also habe ich auf Server A und Server B einen Benutzer mit dem Namen „Transfer“ erstellt. Ich habe zugelassen, dass sich Transfer mithilfe von Authentifizierungsschlüsseln per SSH ohne Kennwort bei Server B anmelden kann.
Also versuche ich jetzt von Server A aus, per su als Transfer auf Server B zuzugreifen, mich per SSH anzumelden und den Befehl auszuführen.
Als Root funktioniert das einwandfrei. Wenn ich jedoch ich selbst oder ein anderer Benutzer bin, werde ich nach dem Passwort für den „Transfer“-Benutzer auf Server B gefragt.
Hier ist die Befehlssequenz:
#!/bin/bash
su transfer -c 'ssh transfer@ServerB script $1 $2'
Antwort1
Erstellen Sie ein Shell-Skript, das den Remote-Befehl ausführt:
% cat > /home/transfer/exec-remote-sw <<EOF
#!/bin/bash
ssh transfer@ServerB script $1 $2
EOF
% chmod 755 /home/transfer/exec-remote-sw
Testen Sie dieses Skript, indem Sie es als transfer
Benutzer ausführen:
% /home/transfer/exec-remote-sw arg1 arg2
Erstellen Sie jetzt als Root eine Linux-Gruppe (z. B. transfer
) und fügen Sie dann alle Benutzer, die Zugriff auf diese Funktionalität benötigen, zur Unix-Gruppe hinzu:
% groupadd transfer
% usermod -a -G transfer login1
% usermod -a -G transfer login2
...
% usermod -a -G transfer loginN
Fügen Sie als Root Folgendes an die /etc/sudoers
Datei an, indem Sie Folgendes ausführen visudo
:
%transfer serverA = (transfer) NOPASSWD: /home/transfer/exec-remote-sw
Testen Sie dies, indem Sie sich als einer der Benutzer in der Übertragungsgruppe anmelden und Folgendes ausführen:
% sudo -u transfer /home/transfer/exec-remote-sw arg1 arg2
Um dies für Ihre Benutzer zu vereinfachen, lassen Sie sie Folgendes zu ihren .profile-Dateien hinzufügen (oder fügen Sie es für alle zu /etc/profile hinzu):
alias svrbexec="sudo -u transfer /home/transfer/exec-remote-sw"
Anschließend können Benutzer Folgendes eingeben:
% svrbexec arg1 arg2
und der Remote-Prozess sollte mit seinen beiden übergebenen Parametern ausgeführt werden.