Introducción
El comando chown le permite cambiar el usuario y /o grupo que posee un archivo, directorio o enlace simbólico en particular.
En Linux, todos los archivos están asociados con un propietario y un grupo y se les asignan derechos de acceso y permiso para el propietario del archivo, los miembros del grupo y otros.
En este tutorial mostraremos cómo usar el comando chown a través de ejemplos prácticos.
Usa el comando chown
Antes de ver cómo usar el comando chown, comencemos a ver la sintaxis básica.
Las expresiones del comando chown toman la siguiente forma:
chown [OPTIONS] USER[:GROUP] FILE(s)
USUARIO es el nombre de usuario o ID de usuario (UID) del nuevo propietario. GRUPO es el nombre del nuevo grupo o el ID de grupo (GID). ARCHIVO (s) es el nombre de uno o más archivos, directorios o enlaces. Los ID numéricos deben estar precedidos por el símbolo "+".
- USUARIO: si solo se especifica el usuario, el usuario especificado se convertirá en el propietario de los archivos indicados, el grupo de propietarios no se cambiará.
- USUARIO: - Cuando el nombre de usuario va seguido de dos puntos " : " y el nombre del grupo no está asignado, el usuario se convertirá en el propietario de los archivos y el propietario del grupo de los archivos se cambiará al grupo asociado con el usuario.
- USUARIO: GRUPO: si se especifican tanto el usuario como el grupo (sin espacio entre ellos), el propietario de los archivos se convertirá en el usuario especificado y el grupo propietario cambiará al especificado.
- : GRUPO: si se omite el usuario y el grupo está precedido por dos puntos " : ", solo el grupo que posee los archivos se cambia al grupo especificado.
- : Si solo se especifica el carácter ": ", sin especificar el usuario y el grupo, no se realizan cambios.
De forma predeterminada, si tiene éxito, chown no produce ningún resultado.
Utilice el comando ls -l para identificar quién es el propietario de un archivo o a qué grupo pertenece el archivo:
ls -l filename.txt
-rw-r--r-- 12 noviello noviello 1239291 Aug 8 03:04 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
Solo el root o el usuario con privilegios de sudo pueden cambiar el grupo propietario de un archivo.
Cambiar el propietario de un archivo
Para cambiar el propietario de un archivo, use el comando chown seguido del nombre de usuario del nuevo propietario y el archivo de destino como argumento:
chown USER FILE
Por ejemplo, el siguiente comando cambiará el propietario de un archivo llamado file1 a un nuevo propietario llamado noviello:
chown noviello file1
Para cambiar el propietario de varios archivos o directorios, especifíquelos como una lista separada por espacios. El siguiente comando cambia la propiedad de un archivo llamado file1 y directorio dir1 a un nuevo propietario llamado noviello:
chown noviello file1 dir1
El ID de usuario numérico (UID) se puede utilizar en lugar del nombre de usuario. El siguiente ejemplo cambiará la propiedad de un archivo llamado file2 a un nuevo propietario con un UID de 1000:
chown 1000 file2
Si el usuario noviello tiene como UID "1000" y el nombre de usuario de otro usuario es "1000" pero tiene UID 1002, usando el parámetro " + " cambia inequívocamente el propietario a noviello.
chown +1000 file2
Cambiar el propietario y el grupo de un archivo
Para cambiar tanto el propietario como el grupo de un archivo, use el comando chown seguido del nuevo propietario y el grupo separados por dos puntos " : " sin espacios intermedios y el archivo de destino.
chown USER:GROUP FILE
El siguiente comando cambiará el propietario de un archivo llamado file1 a un nuevo propietario llamado noviello y grupos de usuarios:
chown noviello:users file1
Si omite el nombre del grupo después de los dos puntos " : ", el grupo del archivo cambia al grupo de acceso del usuario especificado:
chown noviello: file1
Cambiar el grupo de un archivo
Para cambiar solo el grupo de un archivo, use el comando chown seguido de dos puntos ": " y el nombre del nuevo grupo (sin espacios entre ellos) y el archivo de destino como argumento:
chown:GROUP FILE
El siguiente comando cambiará el grupo propietario de un archivo llamado file1 a www-data:
chown:www-data file1
Otro comando que puede usar para cambiar el grupo propietario del archivo es chgrp.
Cambiar el propietario de los enlaces simbólicos
Cuando no se utiliza la opción recursiva, el comando chown cambia el grupo propietario de los archivos a los que apunta el enlace simbólico, no los enlaces simbólicos en sí.
Por ejemplo, si intenta cambiar el propietario y el grupo del enlace simbólico a symlink1 apuntado por /var /www /archivo1, chown va a cambiar el propietario del archivo o directorio que los puntos de enlace simbólicos a:
chown www-data: symlink1
Es probable que en lugar de cambiar el propietario del archivo de destino, obtenga el siguiente error "no se puede eliminar la referencia 'enlace simbólico1': Permiso denegado".
El error se produce porque de forma predeterminada en la mayoría de las distribuciones de Linux, los enlaces simbólicos están protegidos y no es posible operar en los archivos de destino. Esta opción se especifica en /proc /sys /fs /protected_symlinks. Si el parámetro se establece en 1, significa habilitado y 0 deshabilitado. Se recomienda que no desactive la protección de enlaces simbólicos.
Para cambiar el grupo propietario del enlace simbólico en sí, use la opción -h:
chown -h www-data symlink1
Cambiar de forma recurrente el propietario de un archivo
Para operar recursivamente en todos los archivos y directorios en el directorio especificado, use la opción -R (--recursive):
chown -R USER:GROUP DIRECTORY
El siguiente ejemplo cambiará el propietario de todos los archivos y subdirectorios del directorio /var /www a un nuevo propietario y grupo llamado www-data:
chown -R www-data: /var/www
Si el directorio contiene enlaces simbólicos, use la opción -h:
chown -hR www-data: /var/www
Usando un archivo de referencia
La opción --reference = ref_file cambia el usuario y el grupo de propietarios de ciertos archivos para que sean iguales al archivo de referencia especificado ( ref_file ). Si el archivo al que se hace referencia es un enlace simbólico, chown utilizará el usuario y el grupo del archivo de destino.
chown --reference=REF_FILE FILE
Por ejemplo, el siguiente comando asignará el grupo y el usuario propietario de file1 a file2
chown --reference=file1 file2
Conclusión
chown es una utilidad de línea de comandos de Linux /UNIX para cambiar el usuario y /o grupo que posee el archivo.
Para obtener más información sobre el comando chown, escriba el siguiente comando:
man chown