it-swarm.com.de

Beibehalten von Datei- und Ordnerberechtigungen mit rsync

Ich verwalte eine Sicherung meiner E-Mail-Konten mit diesem Befehl:

Sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ [email protected]_backup_server:/home/user/backups/vmail/

Quelle: Die meisten E-Mail-Ordner gehören dem Benutzer vmail.

Ziel (Sicherungsserver): Das System hat keinen Benutzer mit dem Namen vmail.

Meine Frage, würde der obige Befehl Datei- und Verzeichnisberechtigungen beibehalten, selbst wenn der Zielcomputer keinen Benutzer mit dem Namen vmail hat? Wäre es möglich, die Dateien und Berechtigungen vollständig vom Ziel zur Quelle wiederherzustellen, selbst wenn die Benutzernamen zwischen den beiden Computern nicht identisch sind (einige fehlen auf dem Sicherungsserver).

6
W.M.

Was rsync kopiert, ist die numerische Benutzer-ID der Datei, unabhängig davon, ob sie auf dem Zielsystem vorhanden ist. Wenn ein Benutzer mit dieser ID nicht vorhanden ist, zeigt ls usw. nur diese Nummer anstelle eines Namens an. Wenn diese Benutzer-ID zu einem anderen Benutzernamen auf dem Zielsystem gehört, besitzt dieser Benutzer nun die Datei.

Das Sichern und Wiederherstellen funktioniert in diesem Szenario problemlos.

4
Sven

Wie rsync den Besitz von Dateien beibehält, hängt von zwei Dingen ab:

  • Sind Sie Superuser (root) am Ziel?
    Andernfalls können Sie keine Dateien und Verzeichnisse mit einem anderen Benutzer als Ihrem eigenen erstellen.

  • Welche Optionsflags verwenden Sie?

Das -a Option enthält die -o, --owner, -g, --group Optionen zur Wahrung des Eigentums.

Auf Dateisystemebene werden Benutzer- und Gruppeneigentum in UID bzw. UID gespeichert. GID-Nummern. Wenn keine Zuordnung von UID/GID zu Benutzernamen und Gruppennamen erfolgt, werden diese Nummern stattdessen einfach angezeigt.
Benutzer und Gruppen mit demselben Namen können auf verschiedenen Systemen unterschiedliche UID/GID-Nummern haben.

Standardmäßig versucht rsync, den Besitz nach Benutzername bzw. Benutzername abzugleichen. Gruppenname . Mit anderen Worten, wenn der Benutzer vmail der Eigentümer einer Datei an der Quelle ist, macht rsync den Benutzer vmail auch zum Eigentümer am Ziel (selbst wenn er unterschiedliche UID/GID-Nummern hat). .
Das ist normalerweise ziemlich belastbar und für Menschen am vorhersehbarsten, da wir das Eigentum normalerweise nicht in Form von UID/GID-Nummern betrachten.

Wenn auf dem Remote-Ziel kein übereinstimmender Benutzer vmail vorhanden ist, tritt ein Fallback-Szenario auf. Rsync behält dann die tatsächlichen zugrunde liegenden UID/GID-Nummern bei und die UID-Nummer des Benutzers vmail in der Quelle wird zum Festlegen des Besitzers verwendet.

Dies sollte den korrekten Besitz bewahren, wenn Sie die rsync-Richtung umkehren und die Sicherung wiederherstellen.

man rsync :

   -o, --owner
          This  option  causes  rsync to set the owner of the destination file to be the same as the source file,
          but only if the receiving rsync is being run as the super-user (see also the --super  and  --fake-super
          options).   Without this option, the owner of new and/or transferred files are set to the invoking user
          on the receiving side.

          The preservation of ownership will associate matching names by default, but may fall back to using  the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


   --numeric-ids
          With  this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership  to  give  files.  The
          special  uid  0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system,  then
          the  numeric ID from the source system is used instead.  See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects  rsync’s  ability  to
          look up the names of the users and groups and what you can do about it.
11
HBruijn

In Ihrem Fall tritt das eigentliche Problem auf, wenn es darum geht, die Dateien wiederherzustellen. Der Schlüssel wäre, den gewünschten Eigentümer/die gewünschte Gruppe anzugeben, wenn Sie die Dateien zurückziehen. --chown=vmail:vmail

Angenommen, Sie haben den Benutzer vmail bereits auf dem neuen Computer erstellt, auf dem Sie ihn wiederherstellen möchten, würden Sie Folgendes ausgeben:

Sudo rsync -av --chown=vmail:vmail --force --delete --progress [email protected]_backup_server:/home/user/backups/vmail/ /vmail/

Wenn Sie dies auf diese Weise tun, spielt es keine Rolle, wem die Dateien auf dem Sicherungsserver gehören, solange Sie eine Synchronisierung mit/von diesem Benutzer durchführen können (was in Ihrem Beispiel impliziert ist, dass dies bereits der Fall ist).

2
rarawls