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!