Administrar permisos y propietarios es una tarea fundamental en sistemas Linux. El comando chown permite cambiar el propietario y el grupo de archivos y directorios, facilitando el control de acceso y la administración segura del sistema.
En esta guía aprenderás qué es el comando chown, cómo funciona su sintaxis, cuándo utilizarlo y ejemplos prácticos para cambiar propietarios de archivos, aplicar cambios recursivos en directorios y resolver problemas comunes relacionados con permisos en Linux.
¿Qué es el comando chown?
El comando chown (change owner) se utiliza en sistemas Linux y Unix para cambiar el propietario y opcionalmente el grupo asociado a archivos y directorios.
Cada archivo en Linux tiene metadatos importantes:
- Usuario propietario (Owner): quien tiene control principal sobre el archivo.
- Grupo (Group): conjunto de usuarios que pueden compartir permisos.
- Permisos: lectura (r), escritura (w) y ejecución (x).
Ejemplo de salida usando ls -l:
-rw-r--r-- 1 oscar desarrolladores 1200 jun 16 10:20 reporte.txt
Interpretación:
- -rw-r--r-- → se explica en el posts Comando chmod en Linux
- oscar → propietario del archivo.
- desarrolladores → grupo propietario.
Con chown puedes modificar ambos valores.
Sintaxis del comando chown
chown [OPCIONES] USUARIO[:GRUPO] ARCHIVO
Estructura:
- USUARIO → nuevo propietario.
- GRUPO → grupo nuevo (opcional).
- ARCHIVO → archivo o directorio objetivo.
Cómo ver propietario y grupo actuales
Antes de usar chown normalmente inspeccionas el archivo:
ls -l archivo.txt
Ejemplo:
-rw-r--r-- 1 root root 500 jun 16 10:30 archivo.txt
Aquí:
- Propietario → root
- Grupo → root
Ejemplo: Cambiar solo el propietario
Supongamos que existe el archivo:
reporte.txt
Quieres que pertenezca al usuario juan.
sudo chown juan reporte.txt
Verificar:
ls -l reporte.txt
Resultado esperado:
-rw-r--r-- 1 juan usuarios 1200 reporte.txt
Ejemplo 2: Cambiar propietario y grupo
sudo chown juan:ventas reporte.txt
Ahora:
- Usuario → juan
- Grupo → ventas
Verificación:
ls -l reporte.txt
Ejemplo 3: Cambiar solo el grupo
Si deseas mantener el usuario y cambiar únicamente el grupo:
sudo chown :ventas reporte.txt
Solo se modifica el grupo.
Ejemplo 4: Cambiar propietario de un directorio
sudo chown juan proyectos
Solo cambia el directorio, no su contenido.
Ejemplo 5: Cambiar propietario de forma recursiva (-R)
Esta es una de las opciones más utilizadas.
sudo chown -R juan:ventas proyectos/
La opción -R recorre:
- Directorio principal.
- Subdirectorios.
- Archivos internos.
Ejemplo:
proyectos/
├── app.js
├── index.html
└── imagenes/
└── logo.png
Todos pasarán a pertenecer a juan:ventas.
¿Qué necesitas para practicar?
Para hacer ejemplos reales necesitas:
- Un sistema Linux (Ubuntu, Debian, Fedora, CentOS o una máquina virtual).
- Acceso a terminal.
- Permisos sudo.
- Uno o más usuarios creados.
Recomiendo ver los siguientes post
Crear usuarios de prueba:
sudo useradd usuario1
sudo useradd usuario2
Crear archivos de prueba: con mkdir
mkdir practica
touch practica/archivo.txt
Ver propietario:
ls -l practica
Cambiar propietario:
sudo chown usuario1 practica/archivo.txt
Comprobar:
ls -l practica
Opciones importantes de chown
-R(Recursivo): Es la opción más utilizada. Aplica el cambio de propietario o grupo a un directorio y a todo su contenido (archivos y subcarpetas) de forma automática.-v(Verbose): Muestra un mensaje detallado por cada archivo o directorio quechownva procesando. Es muy útil para confirmar que una operación masiva se realizó correctamente.-c(Changes): Funciona de manera similar a-v, pero solo imprime un mensaje cuando se realiza un cambio real, omitiendo los archivos que ya tenían el propietario asignado.-h(Enlaces simbólicos): En lugar de modificar el archivo o carpeta al que apunta el enlace simbólico, modifica únicamente el enlace en sí.--from=USUARIO_ACTUAL:GRUPO_ACTUAL: Cambia la propiedad de un archivo o directorio solo si coincide exactamente con el propietario y el grupo actual especificados.--reference=ARCHIVO: Copia la configuración de usuario y grupo de otro archivo de referencia y la aplica al archivo destino, sin tener que escribir los nombres manualmente.
Ejemplo usando referencia:
sudo chown --reference=archivo1 archivo2
archivo2 copiará propietario y grupo de archivo1.
Errores comunes
1. Operation not permitted
chown: changing ownership: Operation not permitted
Solución:
sudo chown usuario archivo
2. Usuario inexistente
chown: invalid user
Ver usuarios disponibles:
cat /etc/passwd
Buenas prácticas
- Usa ls -l antes y después del cambio.
- Ten cuidado con -R, porque puede modificar miles de archivos.
- No cambies propietarios del sistema sin saber su función.
- Haz pruebas en carpetas temporales antes de usarlo en producción.
Relación entre chown y chmod
Muchos principiantes los confunden:
- chown → cambia quién es dueño del archivo.
- chmod → cambia qué permisos tiene.
Ejemplo combinado:
sudo chown juan:ventas app.sh
chmod 755 app.sh
Primero cambia propietario y luego permisos.