Ich erhalte den im Titel genannten Fehler.
Ich habe diese ähnliche Frage gefunden: Führen Sie rsync mit Root-Berechtigung auf einem Remotecomputer aus . Das beantwortet meine Frage nicht.
Ich bin der Administrator auf dem Remote-Server und möchte rsync
Dateien auf meiner lokalen Box sichern. Hier ist mein rsync-Befehl:
$ rsync -avz [email protected]:/var/www/ /backups/Sites/MySite/
Es funktioniert meistens. Die Anmeldung erfolgt über ein Schlüsselpaar. Ich kann und kann kein Passwort verwenden (BEARBEITEN: um mich über SSH anzumelden). Nur wenige Dateien werden aufgrund von Berechtigungen nicht übertragen. Ich möchte diese Berechtigungen nicht ändern.
Hier ist der Fehler:
receiving file list ... done
rsync: send_files failed to open "/var/www/webapp/securestuff/install.php": Permission denied (13)
Ich möchte die Berechtigungen für diese Datei nicht ändern. Es (und andere mögen es) sollte nicht lesbar sein (außer durch root).
Dies muss in einem Cron-Job ausgeführt werden, und ich bevorzuge eine einfache einzeilige Lösung, bei der nur der Befehl rsync verwendet wird. Die nächste Wahl wäre ein Shell-Skript, das ich vom Cron-Job aus aufrufen kann. In keinem Fall kann ich mich manuell beim Remote-Computer anmelden und root werden (da ich schlafen werde, wenn dies ausgeführt wird.
Wie kann ich rsync verwenden, um es auf meiner lokalen Box zu sichern?
quelle
rsync: send_files failed to open "/cygdrive/...": Permission denied (13)
. Mein Quellcomputer war also Windows Cygwin. Etwas andere Situation, aber für die Nachwelt bestand meine Lösung darin, mit der rechten Maustaste auf cmd.exe zu klicken und Als Administrator auszuführen .Antworten:
Sie können eine Datei sichern , die Sie nicht lesen können, so dass die Berechtigungen werden entweder müssen geändert oder von root außer Kraft gesetzt .
Ihre Optionen im Detail:
Überschreiben Sie die Berechtigungen, indem Sie sie
[email protected]
direkt synchronisieren . (... oder indem Sie sudo auf dem Server so konfigurieren , dass die
rsync
serverseitige Komponente ohne Kennwort ausgeführt werden kann.und
Erstellen Sie ein dediziertes "Website-Backup" -Konto auf dem Server. Ändern Sie die Berechtigungen der Dateien, um sie für das Konto "Website-Backup" lesbar zu machen. Sie können ACLs verwenden und
setfacl
dafür. Verwenden Sie dieses Konto nicht für andere Zwecke.Schreiben Sie ein Skript auf den Server, das / var / www / in einen verschlüsselten Tarball kopiert. Dies kann wiederum als root (über crontab) oder durch Konfigurieren von sudo erfolgen , sodass für dieses Skript kein Kennwort erforderlich ist. Beispielsweise:
Die Sicherung erfolgt durch jedes Mal Ziehen des gesamten Tarballs, was bei großen Websites möglicherweise ineffizient ist:
Die Passwortanforderung würde durch Bearbeiten von Sudoern entfernt :
quelle
Auf dem Remote-Host können Sie den rsync-Daemon mit ausführen
in der
/etc/rsyncd.conf
Datei.Dadurch kann der Dämon die
CAP_DAC_OVERRIDE
Funktion nutzen und das lokale Dateisystem lesen, ohne die Berechtigungen / den Besitz zu ändern.Wenn Sie nur ein Backup erstellen müssen, empfiehlt es sich, rsync auf den schreibgeschützten Modus einzustellen:
quelle
Wenn die Dateien nur von lesbar sind
root
, müssen Sieroot
Zugriff haben, um die Datei durch Lesen aus dem Dateisystem zu sichern.rsync
liest die Dateien aus dem Dateisystem, nicht vom Rohgerät.Mit Ausnahme von
dump
,dd
und ähnlichen Sicherungen , die die Partition nicht kopieren , dass Dateien, Backups Programme , die Dateien aus dem Dateisystem lesen. Sicherungsdienstprogramme können keine Dateien lesen und sichern, für die die Berechtigungen der Benutzer-ID, mit der sie ausgeführt wurden, den Zugriff verhindern. Dies ist der Fall, auf den Sie stoßen.In den meisten Fällen müssen Sie Ihrer Sicherungssoftware so vertrauen, dass sie alle Ihre Daten lesen kann. Dies bedeutet auch, dass Sie Ihrem Sicherungsmedium alle Ihre Daten anvertrauen müssen. In einigen Fällen möchten Sie möglicherweise einige Dateien von der Sicherung ausschließen und eine alternative Methode zum Sichern ihres Inhalts verwenden.
BEARBEITEN: Während Sie die Daten archivieren (alle Berechtigungen kopieren), benötigen Sie Root-Zugriff auf beiden Servern. Wenn Sie dies als Backup durchführen, sollten Sie sich eine Lösung wie BackupPC ansehen, die rsync zum Lesen der Dateien verwendet, die Dateien jedoch in einem eigenen Verzeichnisbaum speichert.
quelle