En los sistemas operativos Linux y similares a Unix, todos los archivos, directorios y procesos (que nuevamente son archivos) son propiedad de los usuarios. El grupo es un conjunto de usuarios que comparten los mismos permisos de acceso (es decir, lectura, escritura y ejecución) para esos objetos (archivos/directorios).
El comando chown se usa en Linux para cambiar la propiedad del usuario y del grupo de archivos, directorios y enlaces simbólicos.
En este tutorial, te mostraré cómo usar el comando chown con algunos ejemplos prácticos.
Sintaxis de Chown
Verifiquemos la sintaxis básica del comando chown de la siguiente manera:
chown [OPTIONS] USER[:GROUP] FILE/DIRECTORY
Puede ejecutar ls -l
comando para imprimir los detalles de propiedad del archivo.
En el siguiente resultado, puede ver que el archivo 'myfile.txt' es propiedad del usuario 'tom' y el grupo es propiedad de 'developers':
$ ls -l
-rw-r--r-- 1 tom developers 0 Apr 4 01:35 myfile.txt
Cambiar la propiedad de un archivo
Para cambiar la propiedad de un archivo, use chown con el nombre del nuevo propietario y el nombre del archivo cuyo propietario debe cambiarse.
El siguiente comando cambia la propiedad del archivo llamado 'myfile.txt' a un nuevo usuario 'tom':
# chown tom myfile.txt
Si el comando se ejecutó con éxito, no mostrará ningún resultado en la terminal. Vamos a verificar usando ls -l
comando de la siguiente manera:
# ls -l myfile.txt
-rw-r--r-- 1 tom root 623 Dec 10 2012 myfile.txt
Cambiar el propietario y el grupo de un archivo
Si el propietario va seguido de dos puntos (:
) y un nombre de grupo (sin espacios), el nombre del grupo también se cambia.
El siguiente ejemplo muestra cómo cambiar el propietario y el grupo del archivo llamado 'miarchivo.txt':
# chown tom:developers myfile.txt
Ahora el nuevo propietario del archivo es 'tom' y el nuevo propietario del grupo es el grupo 'desarrolladores'.
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 424 Dec 10 2012 myfile.txt
Si elimina el nombre del grupo después de los dos puntos, el grupo del archivo se cambia al grupo de inicio de sesión del usuario especificado:
# chown tom: myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom tom 453 Dec 10 2012 myfile.txt
Si se mencionan los dos puntos (:) y el grupo, solo se cambia el grupo del archivo. En este caso, el comando funciona como el comando chgrp.
# chown :developers myfile.txt
# ls -l myfile.txt
-rw-r--r-- 1 tom developers 1579 Dec 10 2012 myfile.txt
Cambiar la propiedad de los directorios de forma recursiva
Para aplicar la propiedad recursivamente en todos los archivos y directorios en un directorio dado, use -R
opción
En el siguiente ejemplo, la propiedad de todos los archivos y directorios bajo '/var/www/html' se cambiará recursivamente a 'linoxide' y la propiedad del grupo a 'www-data':
# chown linoxide:www-data -R /var/www/html
Salida detallada
El --verbose
La opción muestra todos los cambios de propiedad en el terminal. Muestra los diagnósticos para cada archivo procesado.
Por ejemplo:
# chown -R --verbose jones /home/jones/
changed ownership of `/home/jones/hello' to jones
changed ownership of `/home/jones/.emacs' to jones
changed ownership of `/home/jones/.bash_history' to jones
changed ownership of `/home/jones/.bash_logout' to jones
changed ownership of `/home/jones/.bashrc' to jones
changed ownership of `/home/jones/file1' to jones
La opción detallada genera el procesamiento de cada archivo incluso cuando no se realizan los cambios. Pero con -c
o --changes
opción, la salida se informa solo cuando se realizan cambios.
Cambiar la propiedad de los enlaces simbólicos
Por defecto chown
El comando no cambiará la propiedad de los enlaces simbólicos, sino que cambiará la propiedad en el archivo de destino. Chmod tiene una opción -h
que se puede usar para cambiar la propiedad de los enlaces simbólicos.
Compruebe el siguiente ejemplo:
# chown -h tom vmlinuz
# ls -l
total 0
lrwxrwxrwx 1 tom root 31 Apr 5 00:50 vmlinuz -> /boot/vmlinuz-4.15.0-88-generic
Cambiar propiedad igual que el archivo de referencia
Puede hacer referencia a un archivo del que chown
copie la propiedad del mismo usuario y grupo en un nuevo archivo.
En el siguiente comando --reference=myfile1.txt
opción para proporcionar el archivo de referencia y la propiedad asignada al archivo llamado 'myfile2.txt':
# chown --reference=myfile1.txt myfile2.txt
Funcionamiento silencioso
Un usuario normal no puede cambiar la propiedad de los archivos que pertenecen a otros. Entonces, se muestra un error cuando un usuario normal intenta cambiar la propiedad.
[tom@node051 ~]$ chown tom /etc/
chown: changing ownership of `/etc/': Operation not permitted
Pero si usamos -f
o --silent
o --quiet
opción, el error no se muestra.
[tom@node051 ~]$ chown -f tom /etc/
[tom@node051 ~]$
Cómo conservar la raíz
El comando Chmod tiene una opción --preserve-root
para evitar que chmod actúe recursivamente en /
. Esta opción debe usarse con -R
opción para que surta efecto.
[root@node051 ~]# chown -c --preserve-root tom /
changed ownership of '/' from root to tom
Solo los permisos del /
se cambiará y la propiedad de los archivos y directorios dentro de /
seguirá siendo el mismo.
[root@node051 ~]# ls -ld /
drwxr-xr-x 23 tom root 4096 Feb 19 14:36 /
[root@node051 ~]# ls -l
total 88
drwxr-xr-x 2 root root 4096 Feb 19 14:33 bin
drwxr-xr-x 3 root root 4096 Feb 19 14:36 boot
drwxr-xr-x 16 root root 3660 Mar 28 11:09 dev
drwxr-xr-x 90 root root 4096 Apr 4 02:28 etc
drwxr-xr-x 2 root root 4096 Feb 19 14:35 home
lrwxrwxrwx 1 root root 33 Feb 19 14:35 initrd.img -> boot/initrd.img-4.15.0-88-generic
lrwxrwxrwx 1 root root 33 Feb 19 14:29 initrd.img.old -> boot/initrd.img-4.15.0-76-generic
drwxr-xr-x 22 root root 4096 Feb 19 14:37 lib
drwxr-xr-x 2 root root 4096 Feb 19 14:28 lib64
drwx------ 2 root root 16384 Feb 19 14:27 lost+found
Conclusión
En este tutorial, aprendimos cómo cambiar la propiedad de archivos y directorios en Linux. Gracias por leer y háganos saber sus comentarios.