Respuestas:
Usa el find
comando con la -user
opción. Algo como:
find / -user john
eventualmente aparecerá todos los archivos propiedad del usuario "john".
Si desea cambiar su propiedad (ejecutaría find
sin 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 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 /
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/
find -exec
trazador 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: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í.