Ich habe eine Datei auf Server A (die hinter einem NAT also nicht direkt ansprechbar ist). Die Datei muss in einem auf root beschränkten Verzeichnis auf Server B kopiert werden. Ich habe ein Konto auf Server B mit Sudo-Berechtigungen. Wie lautet die Syntax für den Befehl scp?
command-line
security
sudo
scp
Neil
quelle
quelle
Antworten:
Zuerst müssen Sie die Datei an einen Ort kopieren, an dem Sie Schreibzugriff ohne sudo haben.
Verschieben Sie dann die Datei mit sudo
Wenn Sie keinen beschreibbaren Ort haben, erstellen Sie ein temporäres Verzeichnis mit Schreibberechtigung für Ihren Benutzer.
quelle
chmod 777
ist normalerweise der falsche Weg. Überlegen Sie, was passieren könnte, wenn jemand anderes angemeldet wäre und wüsste, dass Sie diesen Code ausführen würden.ssh sudo
funktioniert bei mir nicht - beschwert sich "keine tty vorhanden und kein askpass programm angegeben"?serverb
oderssh serverb
separat starten,sudo ...
nachdem Sie sich angemeldet haben.Mit SCP müssen Sie zwei Schritte ausführen. Mit rsync ist dies jedoch in einem Schritt wie folgt möglich:
Hinweis: Dies erfordert eine
NOPASSWD
Sudo-Konfiguration. Wenn Sie das Passwort für sudo eingeben müssen, ist der zweistufige Weg erforderlich.Um das Verzeichnis zu kopieren, müssen Sie
-r
Parameter hinzufügen . Und-v
für die ausführliche Ausgabe.Um die obige Methode mit Anmeldeinformationen zu verwenden, müssen Sie diese in Ihre
~/.ssh/config
Datei einfügen, zquelle
sudo: sorry, you must have a tty to run sudo
behoben von-e "ssh -tt"
.-e "ssh -tt"
bekomme ichprotocol version mismatch -- is your shell clean?
. Irgendwelche Tipps, wie man das behebt?Sie können ssh und tar verwenden, um dies zu umgehen:
Dadurch wird zunächst Ihr sudo-Zeitstempel aktualisiert (ggf. nach einem Kennwort gefragt, für das ein tty (
ssh -t
) erforderlich ist ). Anschließend wird mit sudo ein Tarball remote erstellt und lokal extrahiert.Für "tar" unter RedHat 5 müssen die Optionen "--preserve" nach dem Befehl "xpsf -" angegeben werden.
quelle
tar: Invalid replacement string
,-s
scheint das Entfernen in der zu beheben (nicht sicher, wofür Sie dies
sowieso brauchen ). Danke vielmals; das ist fantastisch.tty_tickets
deaktiviert werden, richtig?Sie können sftp mit dem Befehl sudo verwenden, zum Beispiel:
quelle
Wenn Sie jedes Mal ein Passwort für sudo eingeben müssen, können Sie es in einer Datei speichern:
und senden Sie es dann zusammen mit der Quelldatei.
Sie können
tee
anstelle von verwenden,sponge
wenn Sie keine weiteren Utils haben.quelle
Zuerst müssen Sie die Datei an einen Ort kopieren, an dem Sie ohne sudo Schreibzugriff haben. Sie können die folgenden zwei Schritte ausführen.
Schritt 1:
scp filename newserver
Schritt 2:
ssh newserver sudo mv filename /path/to/the/destination
Weitere Informationen finden Sie im scp-Tutorial
quelle
Es kopiert eine bestimmte Datei von der Quelle nach / tmp / auf dem aktuellen Server
quelle