Esto es tarde, pero hoy me topé con esta pregunta porque mi rsync
no tiene la --usermap
opción.
My chown
(v. Chown (GNU coreutils) 8.13) ofrece una recurse ( -R
) incorporada y una --from
opción para que su problema (y el mío) también se haya resuelto utilizando
chown -R --from=john harry /
Más específicamente, estoy migrando un servidor de OpenSuse a Debian, y el usuario y el grupo de apache2 difieren entre las distribuciones. En OpenSuse su usuario
wwwrun (id:30)
y grupo
www (id:8)
, en debian
www-data (id: 33)
para ambos. Después de copiar los archivos usando
rsync -az /path/to/files me@debian:/path/to/
solía
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
en la máquina de destino (debian).
Nota: rsync version 3.1.0 protocol version 31
tiene lo mencionado anteriormente, --usermap
así que si tuviera eso, podría haber hecho los tres pasos con un comando en la máquina de origen:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/
chown harry:harry
si necesito asegurarme de que la membresía del grupo también sea correcta. Pero eso depende en gran medida de la aplicación aquí.