GNU/Linux >> Tutoriales Linux >  >> Linux

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

En Linux, puede haber ocasiones en las que desee cambiar el propietario y la información relacionada con el grupo de un archivo o directorio. Si es un novato en la línea de comandos y desea saber cómo puede realizar dichos cambios a través de la línea de comandos, le alegrará saber que existe un comando, denominado chown. - que te permite hacer esto.

Antes de comenzar con el tutorial del comando chown, vale la pena mencionar que todos los ejemplos e instrucciones mencionados aquí se probaron en Ubuntu 18.04 LTS y Debian 10.

Comando Linux chown explicado

Como ya se mencionó al principio, el comando chown le permite cambiar el propietario y el grupo del archivo a través de la línea de comando. La siguiente es la sintaxis genérica del comando:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

Esto es lo que dice la página de manual de la herramienta al respecto:

If only  an  owner  (a user  name or numeric user ID) is given, that user is made the owner of each
given file, and the files' group is not changed.  If the owner  is followed  by  a  colon  and a
group name (or numeric group ID), with no spaces between them, the group ownership of the  files  is
changed  as well.  If a colon but no group name follows the user name, that user is made the owner
of the files and the group of the files  is  changed  to that  user's  login  group. If the colon
and group are given, but the owner is omitted, only the group of the files is changed; in this case,
chown  performs  the same function as chgrp.  If only a colon is given, or if the entire operand is
empty, neither the owner nor the  group  is changed.

Los siguientes ejemplos tipo preguntas y respuestas le darán una buena idea sobre cómo funciona el comando chown:

P1. ¿Cómo cambiar el propietario de un archivo?

Considere el siguiente ejemplo:

Aquí, el propietario del archivo es 'himanshu' y el grupo al que pertenece también es 'himanshu'. Ahora, para cambiar el propietario, diga 'root', use el siguiente comando:

chown root file1

La siguiente captura de pantalla confirma que el propietario ahora se ha cambiado a 'root'.

P2. ¿Cómo cambiar el grupo de un archivo?

Cambiar un grupo es similar a cambiar el propietario. La única diferencia está en la sintaxis del comando, que es la siguiente:

chown :[group-name] [file-name]

Supongamos que el requisito es cambiar el grupo de 'archivo1' a 'raíz'. Entonces el comando sería:

chown :root file1

La siguiente captura de pantalla muestra que el grupo se cambió con éxito de 'himanshu' a 'root'.

Nota :En caso de que se pregunte por qué se usó el comando 'sudo', o en caso de que sea nuevo en 'sudo', primero debe consultar nuestro tutorial sobre esta herramienta.

P3. ¿Cómo cambiar tanto el propietario como el grupo de un archivo?

Para cambiar tanto el propietario como el grupo de archivos, use la siguiente sintaxis:

chown [new-owner]:[new-group] [file-name]

Entonces, en nuestro caso, para cambiar el propietario y el grupo existente de 'raíz' a 'himanshu', usaremos el siguiente comando:

chown himanshu:himanshu file1

La siguiente captura de pantalla muestra el comando anterior en acción:

P4. ¿Cómo cambiar el propietario o el grupo (o ambos) después de verificar el propietario/grupo existente?

Puede haber situaciones en las que desee verificar primero el propietario/grupo existente de un archivo antes de realizar cualquier cambio. Entonces, para esos casos, puede usar --from opción de línea de comando. Esta opción requiere que menciones el nombre del propietario/grupo que deseas verificar.

chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]

Por ejemplo:

chown --from=root:himanshu himanshu:root file1

El comando anterior verificará si el propietario existente es 'root' y el grupo es 'himanshu'. En caso afirmativo, el propietario se cambiará a 'himanshu' y el grupo se convertirá en 'root'.

P5. ¿Cómo seleccionar información de propietario/grupo de un archivo de referencia?

También puede haber situaciones en las que desee que chown obtenga información relacionada con el propietario y el grupo de un archivo, en lugar de ingresarla manualmente en la línea de comando. Para esos casos, puede usar la --referencia opción de línea de comandos. Esta opción requiere que ingrese el nombre del archivo de referencia.

chown --reference=[ref-file-name] [filename]

Por ejemplo:

chown --reference=file2 file1

Entonces, el comando anterior copiará la información del propietario y del grupo del archivo 2 al archivo 1.

P6. ¿Cómo hacer que chown opere en archivos y directorios recursivamente?

Para hacer que el comando chown opere recursivamente en archivos y directorios, use -R opción de línea de comandos.

chown -R [new-owner]:[new-group] [directory-name-or-path]

Para aquellos que no lo saben, recursiva significa que la operación se realizará para todos los archivos en el directorio dado, así como para archivos y directorios dentro de todos los subdirectorios.

P7. ¿Cómo hacer que chown suprima los mensajes de error?

Puede haber ocasiones en las que el comando chown que ejecute dé un error. Por ejemplo, el siguiente comando cuando se ejecuta en mi sistema:

chown --from=himanshu:himanshu himanshu:root file4

dio el siguiente error:

chown: cannot access 'file4': No such file or directory

Ahora suponga que el requisito es que la herramienta no debe mostrar tales errores. Entonces esto puede hacerse posible usando -f opción de línea de comando.

La captura de pantalla mencionada anteriormente confirma que -f opción de línea de comandos suprime errores/advertencias.

P8. ¿Cómo cambiar la propiedad del grupo al grupo de inicio de sesión del usuario especificado?

Esto se puede hacer usando el [usuario/propietario]: sintaxis. Por ejemplo, el siguiente comando:

chown himanshu: file1

Se asegurará de que la propiedad se otorgue a 'himanshu' y el grupo se cambie al grupo de inicio de sesión de 'himanshu'. Tenga en cuenta que esto es diferente del caso cuando no se usan los dos puntos (:), ya que en ese caso (explicado en la P1 anterior), el grupo permanece sin cambios.

Otra cosa que vale la pena mencionar aquí es que si solo usa dos puntos (:) sin especificar un propietario o grupo, no se producirá ningún cambio. Por ejemplo:

chown : file1

Este comando no tendrá ningún efecto sobre la propiedad del archivo por parte del usuario o del grupo.

P9. ¿Cómo funciona chown con enlaces simbólicos?

De forma predeterminada, si intenta cambiar la propiedad del usuario y del grupo de un enlace simbólico, no habrá ningún cambio. En su lugar, el archivo al que se vincula obtendrá estos cambios.

Por ejemplo, la siguiente captura de pantalla muestra que creé un enlace simbólico 'enlace1' cuyas propiedades de usuario y grupo están configuradas en 'himanshu'. Luego ejecuté el comando chown para cambiar el usuario y el grupo a 'root'. Pero el comando no tuvo efecto en el archivo de enlace simbólico; en cambio, es 'archivo1' (al que apunta el enlace simbólico) cuyas propiedades de usuario y grupo cambiaron.

Sin embargo, si lo desea, puede anular este comportamiento predeterminado mediante la opción -h.

P10. ¿Cómo cambiar el propietario y el grupo de un directorio?

Al igual que la forma en que lo hace para los archivos. El siguiente es un ejemplo:

chown root:root ./test-dir/

Tenga en cuenta que puede realizar una verificación cruzada del cambio de propietario y grupo para un directorio mediante el comando stat:los campos UID y GID en la salida muestran los nombres de usuario y grupo.

Por ejemplo, en mi caso, el resultado mostró claramente el cambio de propiedad del grupo de usuarios.

  File: test-dir
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: 808h/2056d    Inode: 11928001    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-07 10:31:04.867467573 +0530
Modify: 2018-08-07 10:30:53.651807123 +0530
Change: 2018-08-07 10:32:49.644427930 +0530
 Birth: -

Tenga en cuenta que si está realizando cambios recursivos (consulte las preguntas y respuestas sobre la opción -R) y está tratando con enlaces simbólicos, tiene las siguientes opciones a su disposición:

       The following options modify how a hierarchy is traversed when  the  -R
       option  is  also  specified.   If  more than one is specified, only the
       final one takes effect.

       -H     if a command line argument is a symbolic link  to  a  directory,
              traverse it

       -L     traverse every symbolic link to a directory encountered

       -P     do not traverse any symbolic links (default)

P11. ¿Se pueden usar UID y GID en lugar de nombres de usuarios y grupos?

Sí, puede usar ID de usuario y ID de grupo en lugar de nombres. Sin embargo, la sintaxis del comando sigue siendo la misma.

Por ejemplo:

chown 1000:1000 file1

El comando anterior cambiará la propiedad del usuario y del grupo al usuario con UID 1000 y al grupo con GID 1000.

P12. ¿Cómo hacer que chown muestre los detalles de la operación en la salida?

Si desea que el comando chown muestre detalles de la operación que realiza, use la opción de línea de comando -v.

Por ejemplo, este comando:

sudo chown himanshu:himanshu link1 -v

produce el siguiente resultado:

changed ownership of 'link1' from root:root to himanshu:himanshu

Ahora, hay otra opción -c que también actúa como -v, solo que no muestra ningún detalle cuando no se cambia nada.

Conclusión

El comando chown, como la mayoría de ustedes probablemente estará de acuerdo, no es difícil de usar. Lo que es aún mejor es que la página de manual de la herramienta contiene muchos detalles que pueden ser de ayuda para los usuarios (especialmente los novatos). Pruebe los ejemplos que hemos explicado aquí, y para el resto de las características/opciones, vaya a la página del manual de chown. Ante cualquier duda o consulta, deja un comentario a continuación.


Linux
  1. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  2. Tutorial de comandos de comunicación de Linux para principiantes (5 ejemplos)

  3. Tutorial de comando Linux df para principiantes (8 ejemplos)

  4. Tutorial de comando de fecha de Linux para principiantes (8 ejemplos)

  5. Tutorial de comando de nombre de host de Linux para principiantes (5 ejemplos)

Linux who Command Tutorial para principiantes (8 ejemplos)

Tutorial de comandos Linux nl para principiantes (7 ejemplos)

Tutorial de comandos de Linux nm para principiantes (10 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)