Introducción
El chown
El comando cambia la propiedad del usuario de un archivo, directorio o enlace en Linux. Cada archivo está asociado con un usuario o grupo propietario. Es fundamental configurar correctamente los permisos de archivos y carpetas.
En este tutorial, aprenda a usar el comando chown de Linux con ejemplos proporcionados.
Requisitos previos
- Sistema similar a Linux o UNIX
- Acceso a una terminal/línea de comando
- Un usuario con privilegios sudo para cambiar la propiedad. Recuerda ejecutar los comandos con sudo para ejecutarlos correctamente.
Sintaxis del comando Chown de Linux
La sintaxis básica del comando chown consta de unos pocos segmentos. El archivo de ayuda muestra el siguiente formato:
chown [OPTIONS] USER[:GROUP] FILE(s)
- [OPCIONES] – el comando se puede usar con o sin opciones adicionales.
- [USUARIO] – el nombre de usuario o el ID de usuario numérico del nuevo propietario de un archivo.
[:] – utilice los dos puntos al cambiar un grupo de un archivo.- [GRUPO] – cambiar la propiedad del grupo de un archivo es opcional.
- ARCHIVO – el archivo de destino.
Se necesitan permisos de superusuario para ejecutar el comando chown.
En esta guía, probamos los ejemplos de comandos con la versión 8.28 de chown en Ubuntu 18.04.2 LTS.
Para verificar la versión chown en su máquina, ingrese:
chown --version
La salida se verá similar a esto:
Cómo verificar la propiedad de un archivo en Linux
En primer lugar, debe conocer el propietario o el grupo del archivo original antes de realizar cambios de propiedad con el comando chown.
Para verificar el grupo o la propiedad de los archivos y directorios de Linux en la ubicación actual, ejecute el siguiente comando:
ls -l
Un ejemplo de salida de ls
el comando se ve así:
Cómo cambiar el propietario de un archivo
Cambiar el propietario de un archivo con chown requiere que especifique el nuevo propietario y el archivo. El formato del comando es:
chown NewUser FILE
El siguiente comando cambia la propiedad de un archivo sample desde raíz al usuario prueba :
chown test sample
Use el mismo formato para cambiar la propiedad de archivos y directorios .
Cambiar el propietario de un archivo con UID
En lugar de un nombre de usuario, puede especificar una ID de usuario para cambiar la propiedad de un archivo.
Por ejemplo:
chown 1002 sample2
Asegúrese de que no haya ningún usuario con el mismo nombre que el UID numérico. Si lo hay, el comando chown da prioridad al nombre de usuario, no al UID .
Cambiar la propiedad de varios archivos de Linux
Enumere los nombres de los archivos de destino después del nuevo usuario para cambiar la propiedad de varios archivos. Use espacios simples entre los nombres de los archivos.
En el siguiente ejemplo, raíz será el nuevo propietario de los archivos sample2 y muestra3 .
chown root sample2 sample3
Combine nombres de archivos y nombres de directorios para cambiar su propiedad con un solo comando. Por ejemplo:
chown root sample3 Dir1
No olvide que los comandos distinguen entre mayúsculas y minúsculas.
Cómo cambiar el grupo de un archivo
Con chown, puede cambiar un grupo para un archivo o directorio sin cambiar el usuario propietario. El resultado es el mismo que usar el comando chgrp.
Ejecute el chown
comando usando los dos puntos y un nombre de grupo:
chown :NewGroup FILE
El siguiente ejemplo cambia el grupo del archivo sample3 de prueba grupal a grupo 3.
chown :group3 sample3
Enumere varios nombres de archivos o directorios para realizar cambios masivos.
Cambiar el Grupo de un Archivo Usando GID
Similar a UID, use una ID de grupo (GID) en lugar de un nombre de grupo para cambiar el grupo de un archivo.
Por ejemplo:
chown :1003 sample
Cambiar propietario y grupo
Para asignar un nuevo propietario a un archivo y cambiar su grupo al mismo tiempo, ejecute chown
comando en este formato:
chown NewUser:NewGroup FILE
Por lo tanto, para configurar linuxuser como nuevo propietario y group2 como el nuevo grupo del archivo sample2 :
chown linuxuser:group3 sample3
Recuerda que no hay espacios antes o después de los dos puntos.
Cambiar grupo a un grupo de inicio de sesión de usuarios
El comando chown asigna el grupo de inicio de sesión del propietario al archivo cuando no se especifica ningún grupo.
Para hacerlo, defina un nuevo usuario seguido de dos puntos, un espacio y el archivo de destino:
chown NewUser: FILE
El siguiente ejemplo cambia la propiedad del grupo al grupo de inicio de sesión de linuxuser :
chown linuxuser: sample3
Transferir propiedad y configuración de grupo de un archivo a otro
En lugar de cambiar la propiedad a un usuario específico, puede usar el propietario y un grupo de un archivo de referencia.
Agregue la --reference
opción al comando chown para copiar la configuración de un archivo a otro:
chown --reference=ReferenceFILE FILE
Recuerde escribir correctamente los nombres de los archivos para evitar el mensaje de error:
Comprobar propietario y grupo antes de realizar cambios
El chown
comando --from
La opción le permite verificar el propietario y el grupo actuales y luego aplicar los cambios.
La sintaxis de chown para verificar tanto al usuario como al grupo se ve así:
chown --from=CurrentUser:CurrentGroup NewUser:NewGroup FILE
El siguiente ejemplo muestra que primero verificamos la propiedad y el grupo del archivo sample3 :
chown --from=root:group2 linuxuser:group3 sample3
Luego, chown cambió el propietario a linuxuser y el grupo a group3 .
Comprobar solo propietario
La opción --from
se puede utilizar para validar solo el usuario actual de un archivo.
chown --from=CurrentUser NewUser FILE
Por ejemplo:
chown --from=root linuxuser sample3
Verificar solo grupo
Similar a la sección anterior, puede validar solo el grupo de un archivo usando la opción --from
.
chown --from=:CurrentGroup :NewGroup FILE
Aquí hay un ejemplo donde verificamos el grupo actual antes de cambiarlo:
chown --from=:group3 :group4 FILE
Recuerde usar los dos puntos para los nombres de ambos grupos para evitar mensajes de error.
Cómo cambiar de forma recursiva la propiedad del archivo
El comando chown permite cambiar la propiedad de todos los archivos y subdirectorios dentro de un directorio específico. Agrega el -R
opción al comando para hacerlo:
chown -R NewUser:NewGroup DirNameOrPath
En el siguiente ejemplo, cambiaremos recursivamente el propietario y el grupo para todos los archivos y directorios en Dir1 .
chown -R linuxuser:group3 Dir1
Comando Chown y enlaces simbólicos
Para cambiar el propietario de un enlace simbólico, use -h
opción. De lo contrario, se cambiará la propiedad del archivo vinculado.
La siguiente imagen muestra cómo se comportan los enlaces simbólicos cuando -h
se omite.
El propietario y el grupo del vínculo simbólico permanecen intactos. En su lugar, el propietario y el grupo del archivo archivo de texto cambiado.
Para enviar los cambios al enlace, ejecute el comando chown con -h
bandera:
chown -h NewUser:NewGroup SymbolicLink
En el siguiente ejemplo, cambiamos el propietario y el grupo de un enlace simbólico.
Mostrar detalles del proceso del comando Chown
De forma predeterminada, el terminal no muestra la información del proceso chown. Para ver qué sucede debajo del capó, use uno de los dos indicadores de línea de comando:
- La opción –v produce los detalles del proceso incluso cuando la propiedad sigue siendo la misma.
- La opción –c muestra la información de salida solo cuando cambia un propietario o grupo del archivo de destino.
Por ejemplo, si especificamos al propietario actual como nuevo propietario del archivo:
chown -v linuxuser sample2
El terminal produce la siguiente salida:
Cambiar de -v
a -c
y no habrá mensajes en este caso. Esto sucede porque no hay cambios de propietario o grupo.
La información es particularmente útil con el comando chown recursivo :
En este ejemplo, la salida enumera todos los objetos afectados después de ejecutar el comando.
Suprimir errores de comando Chown
Para evitar ver posibles mensajes de error al ejecutar el comando chown, use -f
opción:
chown -f NewUser FILE
El siguiente ejemplo muestra el mensaje de error de un archivo o directorio inexistente:
Agregando el -f
bandera suprime la mayoría de los mensajes de error. Sin embargo, si especifica un nombre de usuario no válido, aparece el mensaje de error: