GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Rsync-Befehlsprobleme, Eigentümer- und Gruppenberechtigungen ändern sich nicht

Lösung 1:

Version 3.1.0 von rsync führte den --usermap ein und --groupmap von Thomas erwähnt, sondern auch die Komfortoption --chown , was für Ihr Szenario gut funktioniert.

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

Auch die -o und -g Optionen sind erforderlich. Wenn Sie sie ausschließen, wird ihr jeweiliges Attribut nicht aktualisiert, es wird jedoch kein Fehler ausgegeben.

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

Dies wird indirekt in der Manpage erwähnt, die besagt, dass der --chown Option "wird mit --usermap implementiert und --groupmap intern" und:

Für --usermap Option, um eine Wirkung zu haben, die -o (--owner ) muss verwendet (oder impliziert) werden, und der Empfänger muss als Superuser laufen (siehe auch --fake-super Option).

Für --groupmap Option, um eine Auswirkung zu haben, die -g (--groups ) muss verwendet (oder impliziert) werden, und der Empfänger muss über Berechtigungen zum Festlegen dieser Gruppe verfügen.

Lösung 2:

Es hört sich so an, als würde es richtig funktionieren. Verwenden Sie --owner und --group bewahren (nicht festgelegt) die Eigentümer- und Gruppennamen ... was bedeutet, dass Sie nicht möchten, dass sie sich nach der Übertragung ändern.

Wenn Sie diese Optionen nicht verwenden, werden der Benutzer und die Gruppe auf der Empfängerseite in den aufrufenden Benutzer geändert. Wenn Sie einen anderen Benutzer angeben möchten, müssen Sie einen chown hinzufügen Befehl an Ihr Skript.

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

man rsync

Lösung 3:

Die letzte Version (mindestens 3.1.1) von rsync ermöglicht es Ihnen, den "Remote Ownership" festzulegen:

--usermap=tom:www-data

Ändert den Tom-Besitz in www-data (auch bekannt als PHP/Nginx). Wenn Sie Mac als Client verwenden, verwenden Sie brew, um auf die letzte Version zu aktualisieren. Laden Sie auf Ihrem Server die Archivquellen herunter und "erstellen" Sie sie!


Linux
  1. So ändern Sie Berechtigungen und Eigentümer über die Befehlszeile

  2. So verwenden Sie den Befehl chmod (Modus ändern) unter Linux

  3. Besitzer und Gruppe in C ändern?

  4. Schrägstriche und der Befehl rsync

  5. Wie kann ich ls nach Besitzer und Gruppe sortieren?

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

Lernen Sie die Verwendung des Befehls chgrp (Change Group) in Linux

Erfahren Sie, wie Sie den Befehl chmod (Modus ändern) unter Linux verwenden

Lernen Sie die Verwendung des Befehls chgrp (Gruppe ändern) im Linux-System

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen

rsync und symbolische Links