GNU/Linux >> Znalost Linux >  >> Linux

Zachování oprávnění souborů a složek pomocí rsync

Jak rsync zachovává vlastnictví souborů, závisí na dvou věcech:

  • Jste superuživatel (root) v cíli?
    Jinak nemůžete vytvářet soubory a adresáře s jiným uživatelem, než je ten váš.

  • Které příznaky možností používáte?

-a možnost obsahuje -o, --owner , -g, --group možnosti určené k zachování vlastnictví.

Na úrovni souborového systému je vlastnictví uživatele a skupiny uloženo v UID resp. čísla GID. Pokud neexistuje žádné mapování z UID/GID na uživatelská jména a názvy skupin, nástroje jednoduše zobrazí tato čísla.
Uživatelé a skupiny se stejnými jmény mohou mít v různých systémech různá čísla UID/GID.

Ve výchozím nastavení se rsync pokusí přiřadit vlastnictví podle uživatelského jména resp. název skupiny . Jinými slovy, když uživatel vmail je vlastníkem souboru u zdroje, rsync udělá z uživatele vmail také vlastníka v místě určení (i když mají různá UID/GID čísla).
To je obvykle docela odolné a pro lidi nejvíce předvídatelné, protože obvykle nepohlížíme na vlastnictví ve formě čísel UID/GID.

Když žádný odpovídající uživatel vmail je přítomen ve vzdáleném cíli, pak dojde k nouzovému scénáři. Rsync poté zachová aktuální základní čísla UID/GID a číslo UID z vmail uživatel na zdroji se použije k nastavení vlastníka.

To by mělo zachovat správné vlastnictví, když obrátíte směr rsync a obnovíte zálohu.

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.

Co rsync kopie je číselné uživatelské ID souboru bez ohledu na to, zda existuje v cílovém systému. Pokud uživatel s tímto ID neexistuje, ls atd. zobrazí pouze toto číslo místo jména. Pokud toto uživatelské ID patří k jinému uživatelskému jménu v cílovém systému, tento uživatel bude nyní vlastníkem souboru.

Zálohování a obnovení bude v tomto scénáři fungovat bez problémů.


Konkrétně ve vašem případě nastává skutečný problém, když přijde čas na obnovení souborů. Klíčem by bylo specifikovat požadovaného vlastníka/skupinu při stahování souborů zpět. --chown=vmail:vmail

Za předpokladu, že jste již vytvořili uživatele vmail na novém počítači, do kterého budete obnovovat, zadali byste něco jako následující:

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

Pokud to uděláte tímto způsobem, nezáleží na tom, kdo vlastní soubory na záložním serveru, pokud můžete synchronizovat s tímto uživatelem/od tohoto uživatele (což je naznačeno, že je to již pravda ve vašem příkladu).


Linux
  1. Linux chmod and chown – Jak změnit oprávnění a vlastnictví souborů v Linuxu

  2. Linux – Rozumíte unixovým oprávněním a typům souborů?

  3. Priorita uživatele a vlastníka skupiny v oprávněních k souboru?

  1. Oprávnění a ukládání souborů?

  2. Vytvořit soubor jako jiný uživatel a skupina?

  3. Jak změnit oprávnění k souborům a adresářům pomocí Správce souborů

  1. Oprávnění souborů v Linuxu s příkladem

  2. Zkopírujte soubory pomocí SCP a Rsync

  3. Vytvořte nového uživatele a udělte oprávnění v MySQL