Ich muss die Datei zwischen Linux-Rechnern kopieren. Das Problem des Benutzers, mit dem ich mich anmelde ( myuser
), unterscheidet sich von dem Benutzer, der auf die Datei zugreifen kann.
Wenn ich nur ssh
zur Maschine sudo su someuser
gehe, kann ich den Benutzer über wechseln . Kann ich das irgendwie währenddessen tun scp
?
Während der Verwendung von WinSCP habe ich es geschafft, indem ich den SCP / die Shell konfiguriert habe. Daher glaube ich, dass es eine ähnliche Möglichkeit geben muss, dies über die reine Shell zu tun.
ssh
und Ausführenscp
, so etwas wiessh myuser@host "sudo scp ..."
:?Antworten:
Angenommen, der Benutzer, für den Sie ssh verwenden können, benötigt kein Kennwort, um su in den Zielbenutzer einzugeben, können Sie Folgendes versuchen:
Ich bin immer noch nicht davon überzeugt, dass
targetuser
es nicht viel besser ist , einfach nur scp / sftp / rsync über SSH zuzulassen und ein RSA-Schlüsselpaar für die Authentifizierung zu verwenden.quelle
tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"
für ein paar Dateien-z
oder-j
je nach Verbindungsgeschwindigkeit und Computerhardware auf beiden Seiten nützlich sind ...Wenn Sie die Anmeldeinformationen für den anderen Benutzer (
someuser
) kennen, können Sie sie einfach bei Ihremscp
Anruf angeben .Von der
man scp
Seite:Hier ist die verwendete Syntax:
Beispiel
Sie möchten die Datei mit user
/home/foo/bar
vonhost1
auf Ihren localhost kopieren. Führen Sie dazusomeuser
den folgenden Befehl aus:Sie werden zur Authentifizierung aufgefordert (Passwort, Schlüssel, ...).
quelle
Es ist wahrscheinlich möglich , aber ich würde sagen, es ist ein sehr umständlicher Weg, dies zu tun.
Mein erster Vorschlag ist, sich als dieser Benutzer anzumelden. Selbst wenn Sie nicht über das Kennwort dieses Benutzers verfügen, können Sie dessen authorized_keys Ihren eigenen öffentlichen SSH-Schlüssel hinzufügen und dann mit dessen Schlüssel scp, wie Rahmu zeigt.
Wenn das nicht möglich ist, ist mein zweiter Vorschlag, sich per ssh und sudo beim Benutzer anzumelden und eine Tarfile der zu kopierenden Dateien zu erstellen und sie an einer Stelle abzulegen, die Ihr eigener Benutzer lesen kann. Dann scp runter diese Tarfile.
quelle
Verwenden Sie
-S
für denscp
BefehlzB /superuser/87597/how-to-perform-scp-as-a-sudo-user
Damit können Sie ein Skript ausführen, ähnlich wie Sie es mit dem Anwendungsfall "winscp" getan haben.
quelle
Ich habe versucht, im folgenden Artikel einige Beispiele zu nennen. Die Grundidee ist nicht scp zu verwenden, sondern dd und ssh mit sudo user switch. Aussehen:
http://hmmss.wordpress.com/2014/07/02/ssh-and-scp-with-another-user
quelle