GNU/Linux >> Znalost Linux >  >> Linux

Problémy s příkazy Rsync, oprávnění vlastníka a skupiny se nemění

Řešení 1:

Verze 3.1.0 rsync zavedla --usermap a --groupmap zmínil Thomas, ale také možnost pohodlí --chown , což pro váš scénář funguje dobře.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

Také -o a -g jsou vyžadovány možnosti. Jejich vyloučením se nepodaří aktualizovat jejich příslušný atribut, ale nedojde k chybě.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Toto je nepřímo zmíněno v manuálové stránce, která uvádí, že --chown volba "je implementována pomocí --usermap a --groupmap interně“ a:

Pro --usermap možnost mít jakýkoli efekt, -o (--owner ) musí být použita (nebo implikovaná) a přijímač bude muset běžet jako superuživatel (viz také --fake-super možnost).

Pro --groupmap možnost mít jakýkoli efekt, -g (--groups ) musí být použita (nebo implikovaná) a příjemce bude muset mít oprávnění k nastavení této skupiny.

Řešení 2:

Zní to, že to funguje správně. Použijte --owner a --group zachovat (not set) jméno vlastníka a skupiny... což znamená, že nechcete, aby se po převodu změnily.

Pokud tyto možnosti nepoužijete, uživatel a skupina se změní na volajícího uživatele na straně příjemce. Pokud chcete určit jiného uživatele, budete muset přidat chown příkaz do vašeho skriptu.

-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...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

muž rsync

Řešení 3:

Poslední verze (alespoň 3.1.1) rsync umožňuje zadat "vzdálené vlastnictví":

--usermap=tom:www-data

Změní vlastnictví tom na www-data (aka PHP/Nginx). Pokud jako klienta používáte Mac, upgradujte na poslední verzi pomocí brew. A na svém serveru si stáhněte zdroje archivů a pak to „vyrobte“!


Linux
  1. Jak kopírovat soubory a měnit vlastnictví, oprávnění současně

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

  3. 12 Příklady příkazů Linux Chown pro změnu vlastníka a skupiny

  1. Změnit vlastníka a skupinu v C?

  2. Jak mohu seřadit ls podle vlastníka a skupiny?

  3. Rychlejší způsob, jak rekurzivně změnit vlastníka/skupinu?

  1. Jak změnit oprávnění a vlastníky pomocí příkazového řádku

  2. Jak používat příkaz chmod (Change Mode) v Linuxu

  3. Lomítka a příkaz rsync