Respuestas:
Usa el findcomando con la -useropción. Algo como:
find / -user john
eventualmente aparecerá todos los archivos propiedad del usuario "john".
Si desea cambiar su propiedad (ejecutaría findsin ejecución para asegurarme de que tiene la lista que desea), entonces algo como:
find / -user john -exec chown harry {} \;
lo haré.
Esto es tarde, pero hoy me topé con esta pregunta porque mi rsyncno tiene la --usermapopción.
My chown(v. Chown (GNU coreutils) 8.13) ofrece una recurse ( -R) incorporada y una --fromopción para que su problema (y el mío) también se haya resuelto utilizando
chown -R --from=john harry /
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 31tiene lo mencionado anteriormente, --usermapasí 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/
find -exectrazador de líneas para mí es el último recurso, justo antes de hacer las cosas manualmente. (Además, odio escribir {} \;, pero esto es personal)
chown harry:harrysi necesito asegurarme de que la membresía del grupo también sea correcta. Pero eso depende en gran medida de la aplicación aquí.