Es común trabajar en linux y necesitar modificar el propietario de un grupo de archivos que pertenecen a un usuario concreto pero sin modificar los de otros usuarios, estando todos ellos en las mismas rutas.
Un ejemplo lo tenemos cuando hacemos una copia de ficheros entre servidores y al arrastrar los permisos de usuario entre máquinas, los códigos de usuario no coinciden.


Aquí vemos que el usuario correcto seria «ftpuser:ftpuser», pero en la máquina destino, los uid y gid corresponen a otro usuario «dovecot:www-data».
En linux podemos cambiar la propiedad de los archivos mediante la instrucción chown.
El cambio fácil y rápido consistiria en ejecutar el comando siguiente.
chown -cR ftpuser:ftpuser *
Con lo que todos los ficheros del directorio y sus hijos (-R) cambiarían a «ftpuser:ftpuser».
Pero el problema lo tenemos si queremos sólamente cambiar los archivos incorrectos debido a que, por ejemplo, estos ficheros se han copiado en un directorio que ya contenia ficheros de otros usuarios. Si utilizamos el comando anterior todos los ficheros cambiarían al nuevo usuario sin excepción.
Para cambiar de un usuario a otro debemos añadir el parámetro –from al comando.
chown -cR –from=dovecot:www-data ftpuser:ftpuser *
De esta manera estamos pidiéndole a chown que sólamente modifique los ficheros del usuario «dovecot:www-data».
El parámetro (-c) lo utilizamos para que chown nos muestre sólamente los ficheros que ha modificado, reduciendo así el total de texto que nos muestra en pantalla.
Deja una respuesta