GNU/Linux >> Tutoriales Linux >  >> Linux

12 ejemplos de comandos Chown de Linux para cambiar propietario y grupo

El concepto de propietario y grupos de archivos es fundamental para Linux. Cada archivo está asociado a un propietario y un grupo. Puede usar los comandos chown y chgrp para cambiar el propietario o el grupo de un archivo o directorio en particular.

En este artículo, discutiremos el comando 'chown' ya que cubre la mayor parte del 'chgrp ' comando también.

Incluso si ya conoce este comando, probablemente uno de los ejemplos mencionados a continuación podría ser nuevo para usted.

1. Cambiar el propietario de un archivo

# ls -lart tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

# chown root tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile

Entonces vemos que el propietario del archivo se cambió de 'himanshu' a 'root'.

2. Cambiar el grupo de un archivo

A través del comando chown, también se puede cambiar el grupo (al que pertenece un archivo).

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

# chown :friends tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

Si observa de cerca, el grupo del archivo cambió de 'familia' a 'amigos'. Entonces vemos que simplemente agregando un ':' seguido del nuevo nombre del grupo, se puede cambiar el grupo del archivo.

3. Cambiar propietario y grupo

# ls -l tmpfile
-rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile

# chown himanshu:friends tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

Entonces vemos que usando la sintaxis ':', el propietario y el grupo se pueden cambiar de una sola vez.

4. Usando el comando chown en el archivo de enlace simbólico

Aquí hay un enlace simbólico:

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

Entonces vemos que el enlace simbólico 'tmpfile_symlink' enlaza con el archivo 'tmpfile'.

Veamos qué sucede si se emite el comando chown en un enlace simbólico:

# chown root:friends tmpfile_symlnk

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

Cuando se emitió el comando chown en un enlace simbólico para cambiar el propietario y el grupo, entonces es el referente del enlace simbólico, es decir, 'tmpfile' cuyo propietario y grupo cambiaron. Este es el comportamiento predeterminado del comando chown. Además, existe una bandera '–desreferencia' para el mismo.

5. Usando el comando chown para cambiar a la fuerza el propietario/grupo del archivo simbólico.

Usando la marca '-h', puede cambiar a la fuerza el propietario o grupo de un enlace simbólico como se muestra a continuación.

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

# chown -h root:friends tmpfile_symlnk

# ls -l tmpfile_symlnk
lrwxrwxrwx 1 root friends 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile

6. Cambiar propietario solo si un archivo es propiedad de un usuario en particular

Con el indicador chown “–from”, puede cambiar el propietario de un archivo, solo si ese archivo ya pertenece a un propietario en particular.

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --from=guest himanshu tmpfile

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --from=root himanshu tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile
  • En el ejemplo anterior, verificamos que el propietario/grupo original del archivo 'tmpfile' era raíz/amigos.
  • A continuación, usamos la marca "-from" para cambiar el propietario a "himanshu", pero solo si el propietario existente es "invitado".
  • Ahora, como el propietario existente no era un 'invitado'. Entonces, el comando no pudo cambiar el propietario del archivo.
  • A continuación, intentamos cambiar el propietario si el propietario existente es 'root' (lo cual era cierto) y esta vez el comando fue exitoso y el propietario se cambió a 'himanshu'.

En una nota relacionada, si desea cambiar el permiso de un archivo, debe usar el comando chmod.

Si es un principiante, debe comenzar leyendo los conceptos básicos de los permisos de archivo.

7. Cambiar de grupo solo si un archivo ya pertenece a un determinado grupo

Aquí también se usa la bandera '–from' pero de la siguiente manera:

# ls -l tmpfile
-rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile

# chown --from=:friends :family tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

Dado que el archivo 'tmpfile' en realidad pertenecía al grupo 'amigos', la condición era correcta y el comando fue exitoso.

Entonces vemos que al usar la bandera '–from=:' podemos cambiar el grupo bajo una condición particular.

NOTA:Al seguir la plantilla '–from=:', se pueden aplicar condiciones tanto en el propietario como en el grupo.

8. Copie la configuración del propietario/grupo de un archivo a otro

Esto es posible usando el indicador '–reference'.

# ls -l file
-rwxr-xr-x 1 himanshu family 8968 2012-04-09 07:10 file

# ls -l tmpfile
-rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile

# chown --reference=file tmpfile

# ls -l tmpfile
-rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile

En el ejemplo anterior, primero verificamos el propietario/grupo del archivo de referencia 'archivo' y luego verificamos el propietario/grupo del archivo de destino 'tmpfile'. Ambos eran diferentes. Luego usamos el comando chown con la opción '–reference' para aplicar la configuración de propietario/grupo del archivo de referencia al archivo de destino. El comando fue exitoso y la configuración del propietario/grupo de 'tmpfile' se hizo similar al 'archivo'.

9. Cambia el propietario/grupo de los archivos recorriendo los directorios recursivamente

Esto es posible gracias a la opción '-R'.

# ls -l linux/linuxKernel
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/linuxKernel

# ls -l linux/ubuntu/ub10
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/ubuntu/ub10

# ls -l linux/redhat/rh7
-rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/redhat/rh7

# chown -R himanshu:family linux/

# ls -l linux/redhat/rh7
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/redhat/rh7

# ls -l linux/ubuntu/ub10
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/ubuntu/ub10

# ls -l linux/linuxKernel
-rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/linuxKernel

Entonces vemos eso después de verificar el propietario/grupo de todos los archivos en el directorio 'linux' y sus dos subdirectorios 'ubuntu' y 'redhat'. Emitimos el comando chown con la opción '-R' para cambiar tanto el propietario como el grupo. El comando fue exitoso y el propietario/grupo de todos los archivos se cambió con éxito.

10. Usando el comando chown en un directorio de enlaces simbólicos

Veamos qué sucede si emitimos el comando 'chown' para cambiar recursivamente el propietario/grupo de archivos en un directorio que es un enlace simbólico a algún otro directorio.

Aquí hay un directorio de enlace simbólico 'linux_symlnk' que enlaza con el directorio 'linux' (ya utilizado en el ejemplo '9' anterior):

$ ls -l linux_symlnk
lrwxrwxrwx 1 himanshu family 6 2012-05-22 22:02 linux_symlnk -> linux/

Ahora, cambiemos el propietario (de himanshu a root) de este directorio de enlaces simbólicos recursivamente:

# chown -R root:friends linux_symlnk

# ls -l linux_symlnk/
-rw-r--r-- 1 himanshu friends    0 2012-05-22 21:52 linuxKernel
drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 redhat
drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 ubuntu

En el resultado anterior, vemos que el propietario de los archivos y directorios no se modificó. Esto se debe a que, de forma predeterminada, el comando 'chown' no puede atravesar un enlace simbólico. Este es el comportamiento predeterminado, pero también hay un indicador '-P' para esto.

11. Uso de chown para cambiar a la fuerza el propietario/grupo de un directorio de enlace simbólico de forma recursiva

Esto se puede lograr usando la bandera -H

# chown -R -H guest:family linux_symlnk

# ls -l linux_symlnk/
total 8
-rw-r--r-- 1 guest family    0 2012-05-22 21:52 linuxKernel
drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 redhat
drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 ubuntu

Entonces vemos que al usar el indicador -H, se cambió el propietario/grupo de todos los archivos/carpetas.

12. Enumere todos los cambios realizados por el comando chown

Utilice la opción detallada -v, que mostrará si la propiedad del archivo se cambió o se mantuvo, como se muestra a continuación.

# chown -v -R guest:friends linux
changed ownership of `linux/redhat/rh7' to guest:friends
changed ownership of `linux/redhat' retained to guest:friends
ownership of `linux/redhat_sym' retained as guest:friends
ownership of `linux/ubuntu_sym' retained as guest:friends
changed ownership of `linux/linuxKernel' to guest:friends
changed ownership of `linux/ubuntu/ub10' to guest:friends
ownership of `linux/ubuntu' retained as guest:friends
ownership of `linux' retained as guest:friends

Linux
  1. Comando Cat de Linux:uso y ejemplos

  2. Comandos de Linux:descripción general y ejemplos

  3. 5 ejemplos prácticos del comando chgrp en Linux

  4. Ejemplos de comandos chown en Linux

  5. Ejemplos de comandos groupmems en Linux

Tutorial de comandos Chown de Linux para principiantes (12 ejemplos)

Comando Chown en Linux (Cambiar la propiedad del archivo)

Comando Chgrp de Linux con ejemplos

20 ejemplos prácticos del comando Chown en Linux

Opciones de comando y ejemplos de Tee Command en Linux

Ejemplos de comandos chown de Linux