Comando Chown en Linux (Cambiar propiedad de archivo)
En los sistemas operativos Linux y similares a Unix, todos los archivos, directorios y procesos (que son nuevamente archivos) son propiedad de los usuarios. El grupo es un conjunto de usuarios que comparten los mismos permisos de acceso (es decir, leer, escribir y ejecutar) para esos objetos (archivos / directorios).
El comando chown se usa en Linux para cambiar la propiedad de usuarios y grupos 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
Revisemos la sintaxis básica del comando chown de la siguiente manera:
chown [OPTIONS] USER[:GROUP] FILE/DIRECTORY
Tu puedes correr 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 ‘desarrolladores’:
$ 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 nuevo nombre de propietario y el nombre del archivo para el que se debe cambiar el propietario.
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á ninguna salida en el terminal. Dejemos 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 ‘myfile.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 de forma recursiva en todos los archivos y directorios de un directorio determinado, utilice -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
los --verbose
La opción muestra todos los cambios de propiedad en el terminal. Emite 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 del archivo de destino. Chmod tiene una opción -h
que se puede utilizar para cambiar la propiedad de los enlaces simbólicos.
Mira 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 la propiedad igual que el archivo de referencia
Puede hacer referencia a un archivo desde el chown
copie la misma propiedad de 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 de forma recursiva 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 /
cambiará y la propiedad de los archivos y directorios dentro /
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.