2017-02-20 2 views
-1

Ich versuche, eine Konfigurationsdatei auf einem Client zu ändern, aus der Ferne von einem Server. Dies ist eine experimentelle Testumgebung. Ich habe so eingerichtet, dass der Schlüssel rsa_pub des Servers in der autorisierten Schlüsseldatei des Clients ist.Ausführen einige Befehle in Skript als Benutzer

Wenn ich ein Skript ausführen (dies muss als root ausführen), ich bin für den Client-Computers des Kennworts aufgefordert, wenn ich die Datei zu ändern versuchen. Wenn ich es als Benutzer ausführe, dann bin ich es nicht. Ich habe auch versucht, den sudo -u Schalter zu verwenden, der nicht so gut zu funktionieren scheint.

Ausführen als Benutzer (Dies funktioniert):

echo 'prio 0' | ssh [email protected] "cat > /home/user/priofile.txt" 

noch als Benutzer ausgeführt wird, aber mit -u Schalter (Dies funktioniert):

$ sudo -u user echo 'prio 0' | ssh [email protected] "cat > /home/user/priofile.txt" 

Ausführen als root:

# sudo -u user echo 'prio 0' | ssh [email protected] "cat > /home/user/priofile.txt" 
[email protected]'s password: 

Warum würde ich zur Eingabe eines Passworts aufgefordert, obwohl ich versuche, es als Benutzer auszuführen?

+1

Ist es möglich, dass der autorisierte Schlüssel in der Datei des Clients die 'user' Benutzer passende und nicht' root' Benutzer? –

+0

Ja! genau das Problem. Vielen Dank! – jamie

+0

@jamie Sie haben die Konzepte von stackoverflow nicht verstanden. Ihre Frage bezieht sich nicht auf die Programmierung. Es ist auch etwas, das schon viele Male an vielen Orten diskutiert wurde. Bitte löschen Sie diese Frage und lesen Sie: https://stackoverflow.com/help/how-to-ask, bevor Sie Ihre nächste Frage zu stackoverflow stellen. – hek2mgl

Antwort

0

Die Schlüssel des Root-Benutzer werden unter /root/.ssh/ gespeichert. Diese Schlüssel müssen auf den Remote-Client kopiert werden, um den passwortfreien Zugriff zu ermöglichen.

Verwandte Themen