Ich möchte einen Benutzer haben, der Zugriff auf alle Dateien und Ordner auf dem System hat. Dies dient dazu, RSYNC auf einem lokalen Computer zum Sichern eines Remotecomputers zu verwenden.
Im Moment verwenden wir den Benutzer backups
und obwohl wir diesen Benutzer zu den Gruppen hinzugefügt haben sudo
und admin
rsync immer noch Nachrichten zurückgibt wie:
rsync: opendir "/ location / to / folder" fehlgeschlagen: Berechtigung verweigert (13)
rsync: send_files konnte nicht geöffnet werden "/ location / to / file": Berechtigung verweigert (13)
Jede Idee, wie wir dem Benutzer die backups
Berechtigung geben, auf alles zuzugreifen (ohne den Benutzer jemals zu allen Gruppen hinzuzufügen - der Remote-Server, den wir sichern möchten, ist ein dedizierter Hosting-Server, auf dem jedes Konto seinen eigenen Benutzer im System hat).
Vielen Dank für jede Hilfe.
quelle
/proc
,/dev
sind Fehler zu erwarten.backups
zusudo
undadmin
nichts ändern./home/a/c/account/users/mail:username
, die Berechtigungen wiedrwx------
und im Besitz von habenmail:4096
. Ich gehe davon aus, dass Benutzerbackups
in der Gruppe sindsudo
oderadmin
keinen Zugriff haben, weil keine Zugriffsberechtigungen für Gruppen vorhanden sind. Ich weiß nicht, aber es ist ein Fehler in solchen Ordnern / Dateien.rsync
Befehl mit sudo ausführen .Antworten:
Durch einfaches Hinzufügen des Benutzers
backups
zur Benutzergruppesudo
erhält das Konto nicht automatisch Zugriff auf alle Dateien im System. Es gibt dem Benutzer die Berechtigung, densudo
Befehl auszuführen .Da Sie die Authentifizierung mit öffentlichem Schlüssel verwenden (vermutlich ohne Passphrase), würde ich dies mit Blick auf Sicherheit und einfache Implementierung angehen. Mit
ssh
können Sie den Benutzer darauf beschränken, nur sehr spezifische Befehle auszuführen. In diesem Fall können Sie dem Benutzer erlaubenbackups
,rsync
mit Superuser-Berechtigungen auszuführen .Sie haben den Schlüsselaustausch bereits durchgeführt und die verifizierte Authentifizierung ist erfolgreich. In der
authorized_keys
Datei auf dem Remote-Host, von dem Sie das/home
Verzeichnis sichern, können Sie demcommand=
vom Benutzer verwendeten Schlüssel eine Direktive hinzufügenbackups
. Mit dieser Anweisung kann dieser Befehl nur ausgeführt werden, wenn dieser Schlüssel zur Authentifizierung verwendet wird. Das erste Feld des Schlüssels würde also ungefähr so aussehen:Sie können noch weiter gehen und dem Schlüssel weitere Optionen hinzufügen, z
from=myhost,no-pty,no-X11-forwarding
.Dies sollte Ihnen angemessene Sicherheit bieten und nicht erfordern, dass Sie die zugrunde liegenden Dateisystemberechtigungen ändern. Sie müssen wahrscheinlich mit dem Befehl spielen, den Sie in die
authorized_keys
Datei einfügen, bis er wie erwartet funktioniert. Es kann ein bisschen dauern, bis Sie Ihr Gehirn darum gewickelt haben. Der im Befehl angegebene Befehlauthorized_keys
überschreibt grundsätzlich diersync
Optionen, die Sie vom Verbindungshost übergeben.Viele gute Informationen in
man sshd
. Sie möchten speziell den Abschnitt AUTHORIZED_KEYS FORMAT lesen.quelle
rsync -e ssh -az [email protected]:/home /location/of/local/folder
, um ihn anzuweisen, als Superuser auf dem Remotecomputer ausgeführt zu werden? Oder wird es das automatisch tun? Vielen Dank für Ihre Zeit und Hilfe. :)Eine Möglichkeit besteht darin, einen rsync-Server auf dem Remote-System auszuführen.
Grundsätzlich erstellen Sie eine
rsync.conf
mituid=root
dann verwendenrsync -az rsync://domain.com
.Unter http://pastebin.com/5hQx1mRV finden Sie ein Beispiel, das jemand anderes geschrieben hat, und Konfigurieren des rsync-Daemons für einige Grundlagen zum Aktivieren eines Servers in Ubuntu.
Beachten Sie, dass Sie die Sicherheit berücksichtigen müssen. Ein besserer Ansatz besteht wahrscheinlich darin, das Remote-System auf Ihr lokales System zu übertragen.
quelle
/backup/lc
Ordner auf dem Remote-Server rsync ? Ändere ich daspath
Bit, um das/home
zum Laufen zu bringen?Sie könnten möglicherweise ACL verwenden, wenn das zugrunde liegende Dateisystem dies unterstützt.
Sie sollten die Gruppensicherung in der ACL jeder Datei und jedes Verzeichnisses hinzufügen. Um jedoch automatisch für neu erstellte Dateien und Verzeichnisse hinzugefügt zu werden, sollten Sie zuerst die Standard-ACL für alle vorhandenen Verzeichnisse festlegen. Also auf dem Remote-Server:
Dann sollten Sie die Empfangsberechtigung für alle vorhandenen Verzeichnisse haben und nach Dateien lesen. Sie können dies mit 2 Befehlen tun (diesmal ohne das -d)
Dadurch erhalten Sie zusätzliche Berechtigungen zum Lesen der Dateien in der Gruppensicherung, ohne den vorhandenen Benutzer und die Gruppe zu ändern, die die einzelnen Dateien besitzen.
Hinweis: um die Suche zu beschleunigen | Mit dem Befehl xargs können Sie dem Befehl xargs die folgende Option hinzufügen:
-P n
mit n die Anzahl der parallelen Prozesse. Sie können die Anzahl der CPUs auf Ihrem Computer + 1 einstellen.quelle
sudo setfacl -Rm d:group:backup:r-X,group:backup:r-X /home
:) viel einfacher!