Cómo usar el comando chown en Linux

Una ventana de terminal en un sistema Linux
Fatmawati Achmad Zaenuri / Shutterstock.com

Los archivos y directorios en los sistemas Linux pertenecen a alguien. Puede cambiar su propiedad con el chowncomando. Te mostramos cómo.

Cada archivo pertenece a un usuario y a un grupo

Linux es un sistema multiusuario. El sistema operativo permite definir múltiples cuentas de usuario y que cualquier usuario válido inicie sesión en la computadora. Además, varios usuarios pueden utilizar una sola computadora al mismo tiempo.

Para mantener un registro de qué archivos pertenecen a qué usuario y para imponer cierta seguridad, Linux usa el concepto de propiedad. Cada archivo pertenece a un propietario, un usuario, y a un grupo.

Cuando se crea un archivo, su propietario es el usuario que lo creó. El grupo al que pertenece el archivo, el grupo «propietario», es el grupo actual del usuario. Los usuarios y grupos tienen nombres y también tienen identidades numéricas, llamadas identificador de usuario (o único) (UID) e identificador de grupo (GID).

Cuando crea un archivo, es de su propiedad y pertenece a su grupo actual. Por lo general, este es el grupo en el que ha iniciado sesión. Por defecto, este es un grupo que comparte el mismo nombre que su nombre de usuario y fue creado cuando usted fue creado como usuario en el sistema.

Puede usar el chown comando para cambiar los valores de propiedad a otra cosa. Puede establecer un nuevo propietario, un nuevo grupo o un nuevo propietario y un nuevo grupo al mismo tiempo. El propietario de un archivo puede cambiar la propiedad del grupo, pero solo el root puede cambiar la propiedad del usuario porque eso involucra a otro usuario. Sin privilegios de root, no puede hacer que otro usuario del sistema «adopte» un archivo sin saberlo.

Relacionado:  Cómo usar el comando ar de Linux para crear bibliotecas estáticas

¿Por qué querría cambiar la propiedad?

A continuación, se muestran algunos ejemplos de situaciones en las que es posible que desee hacer esto:

  • Si transfiere archivos entre diferentes sistemas operativos Linux o similares a Unix, deberá cambiar los propietarios de usuarios y grupos por los nuevos propietarios de usuarios y grupos de la cuenta en la que desea utilizar los archivos en la nueva computadora Linux.
  • Un usuario puede dejar su organización y todos sus archivos serán responsabilidad de otro miembro del personal. Deberá cambiar el propietario y el propietario del grupo al miembro del personal que ahora es responsable de esos archivos.
  • Puede crear un script que vaya a ser utilizado por un usuario específico.
  • Puede crear un archivo o directorio conectado como root, pero desea que sea accesible para un usuario específico.

Visualización de sus grupos, UID y GID

Para enumerar los grupos en los que se encuentra, puede usar el groupscomando.

grupos

grupos en una ventana de terminal

Para obtener una lista de los grupos, sus ID numéricos  y su UID y GID , use el idcomando:

carné de identidad

id en una ventana de terminal

Puede usar algunas opciones con ID para refinar la salida.

  • -u : Muestra su UID.
  • -g : enumere su GID efectivo (actual).
  • -nu : muestra su nombre de usuario.
  • -ng : muestra el nombre de su grupo actual.
id -u
id -g
id -nu
id -ng

salida del comando id en una ventana de terminal

Visualización de la propiedad del usuario y del grupo de un archivo

Para ver los propietarios de un archivo o directorio, use la -lopción (lista larga) con ls.

ls -l
ls -l en una ventana de terminal

Podemos ver que el nombre daveaparece dos veces en el listado. La apariencia más a la izquierda nos dice que el propietario del archivo es un usuario llamado dave. El de la derecha davenos dice que el archivo pertenece a un grupo que también se llama dave.

De forma predeterminada, cuando se crea un usuario de Linux, se agrega a un grupo privado con el nombre de su nombre de usuario. Son el único miembro de ese grupo.

Relacionado:  Cómo crear alias y funciones de shell en Linux

Este archivo ejecutable es propiedad del usuario maryy el grupo al que pertenece el archivo es mary'sun grupo privado.

ls -l

ls -l en una ventana de terminal

Este archivo es propiedad del usuario oscar, pero se llama al grupo al que pertenece el archivo researchlab. Esto significa que otros miembros del researchlabgrupo pueden acceder a este archivo, de acuerdo con los permisos de archivo que se han establecido para los miembros de ese grupo.

ls -l en una ventana de terminal

Cambiar la propiedad del usuario

Trabajemos con algunos ejemplos. Este comando cambiará la propiedad del usuario del archivo while.c al usuario mary.

sudo chown mary while.c

sudo chown mary while.c en una ventana de terminal

Podemos usar lspara ver los cambios en las propiedades del archivo.

ls -l mientras.c

ls -l while.c en una ventana de terminal

Puede utilizar chownpara cambiar la propiedad de varios archivos a la vez.

sudo chown mary getval.c global.c goto.c

sudo chown mary getval.c global.c goto.c en una ventana de terminal

Esto cambia la propiedad del usuario de los tres archivos.

ls -l getval.c global.c goto.c

ls -l getval.c global.c goto.c en una ventana de terminal

Puede utilizar comodines para seleccionar grupos de archivos. Este comando cambiará la propiedad del usuario de todos los archivos que comiencen con la letra «c».

sudo chown mary c *. *

sudo chown mary c *. * en una ventana de terminal

Todos los archivos ahora tendrán  marycomo propietario. Tenga en cuenta que no se ha cambiado ninguna propiedad del grupo.

ls -l maría c *. *

ls -l mary c *. * en una ventana de terminal

Cambiemos la propiedad de un directorio. Simplemente pasamos el nombre del directorio a en chownlugar de un nombre de archivo.

sudo chown mary ./archive/

sudo chown mary ./archive/ en una ventana de terminal

Para verificar las propiedades de propiedad del directorio que usamos ls, pero también usamos la -dopción (directorio). Esto enumera las propiedades del directorio, no los archivos dentro de él.

ls -l -d ./archive/

ls -l -d ./archive/ en una ventana de terminal

Para cambiar la propiedad de todos los archivos en un directorio, puede usar la -Ropción (recursiva). Esta opción cambiará la propiedad del usuario de todos los archivos dentro de la archivecarpeta.

sudo chown -R mary ./archive/

sudo chown -R mary ./archive/ en una ventana de terminal

Ahora veamos los archivos en el directorio de archivos.

ls -l ./archive/

ls -l ./archive/ en una ventana de terminal

Como era de esperar, todos los archivos ahora pertenecen a mary.

Cambiar la propiedad del grupo

Hay diferentes formas de cambiar la propiedad del grupo.

Relacionado:  Cómo buscar archivos y carpetas en Linux usando la línea de comandos

Para cambiar la propiedad del grupo al mismo tiempo que cambia la propiedad del usuario, pase el nombre del nuevo propietario y el nombre del nuevo grupo con dos puntos “:” separándolos. El grupo ya debe existir.

sudo chown mary: researchlab charm.c

sudo chown mary: researchlab charm.c en una ventana de terminal

El propietario del usuario y el grupo al que pertenece el archivo se han modificado.

ls -l encanto.c

ls -l charm.c en una ventana de terminal

Una forma abreviada de cambiar la propiedad del grupo al grupo actual del nuevo propietario, simplemente proporcione los dos puntos y omita el nombre del grupo.

sudo chown mary: caps.c

sudo chown mary: caps.c en una ventana de terminal

ls -l mayúsculas.c

ls -l caps.c en una ventana de terminal

Tanto la propiedad del usuario como la propiedad del grupo se han cambiado a mary.

Para cambiar solo la propiedad del grupo, antepóngalo con dos puntos y omita el nombre de usuario. El propietario del usuario no se modificará.

sudo chown: researchlab at.c

sudo chown: researchlab at.c en una ventana de terminal

ls -l en.c

ls -l at.c en una ventana de terminal

Se ha cambiado la propiedad del grupo, pero la propiedad del usuario sigue siendo la misma.

Uso de Chown con valores UID y GID

Puede utilizar los valores numéricos de UID y GID con el chowncomando. Este comando establecerá la propiedad del usuario y del grupo en mary.

sudo chown 1001: 1001 at.c

sudo chown 1001: 1001 at.c en una ventana de terminal

ls -l en.c

ls -l at.c en una ventana de terminal

La posesión es nueve décimas partes de la ley

O eso dicen. Pero en Linux, la propiedad es una parte enorme de la seguridad de los archivos, y los permisos de los archivos proporcionan el resto. Utilice los comandos chowny chmodpara proteger el acceso a archivos en su sistema.