2.4 – CHOWN, CHMOD, CHGRP — LAS TRES LLAVES DEL REINO

En Linux, cada archivo tiene un dueño (usuario), un grupo, y un conjunto de permisos.
Modificar todo eso es fácil… demasiado fácil si usas root sin cabeza.

Vamos a verlos uno por uno.


1. chown → Cambiar el dueño del archivo

La sintaxis es:

chown usuario archivo

Ejemplo simple:

sudo chown juan /var/www/html/index.html

Ahora Juan es el dueño de ese archivo.

Si quieres cambiar usuario y grupo:

sudo chown juan:profesores documento.txt

Cambiar solo el grupo:

sudo chown :profesores documento.txt

Cambiar de forma recursiva (carpeta entera):

sudo chown -R juan:juangroup /home/juan

chown es “Change Owner”: cambia quién manda sobre el archivo.

2. chgrp → Cambiar solo el grupo

Es más específico que chown:

sudo chgrp alumnos proyecto.txt

La idea es sencilla:
Cuando tienes un archivo, pueden mandar sobre él:

  • tú como usuario
  • o cualquiera de tu grupo asociado

chgrp te deja decidir ese segundo nivel.


3. chmod → Cambiar los permisos

Aquí empieza el festival de números y letras. Tus alumnos suelen entenderlo mejor si usas una metáfora de puertas.

Cada archivo tiene permisos divididos en tres bloques:

u g o
user group others

Y cada uno tiene:

  • r → read (leer)
  • w → write (escribir)
  • x → execute (ejecutar)

Dos formas de usar chmod:

A) Modo numérico (octal)

Es el clásico:

chmod 755 archivo

Por qué 7, 5 y 5?
Porque cada permiso suma:

  • r = 4
  • w = 2
  • x = 1

Ejemplos:

  • 7 = rwx (4+2+1)
  • 6 = rw- (4+2)
  • 5 = r-x (4+1)
  • 4 = r– (4)

Ejemplos prácticos:

Permiso para que usuario pueda todo, grupo y otros solo leer:

chmod 744 informe.txt

Permiso de ejecución para usuario y grupo:

chmod 770 script.sh

Modo más típico para scripts:

chmod 755 script.sh

B) Modo simbólico (con letras)

Más legible:

Dar ejecución al usuario:

chmod u+x script.sh

Quitar escritura a otros:

chmod o-w archivo.txt

Dar permisos de lectura y escritura al grupo:

chmod g+rw proyecto

Ejemplo 1: carpeta compartida para un grupo

sudo mkdir /compartido
sudo chgrp alumnos /compartido
sudo chmod 770 /compartido

Todo el grupo “alumnos” puede usarla.


Ejemplo 2: permitir que un usuario edite su web

sudo chown -R juan:www-data /var/www/juan
sudo chmod -R 750 /var/www/juan

Explicación para los estudiantes:

  • Juan puede leer/escribir.
  • El servidor (www-data) puede leer.
  • Nadie más puede entrar.

Ejemplo 3: archivo ejecutable para todos

chmod a+x programa.sh

a significa all (todos los usuarios).


Ejemplo 4: bloquear totalmente un archivo

chmod 000 documento.txt

Solo root podrá tocarlo.

¿Cómo enlazar esto con la lección de root?

Un usuario normal solo puede cambiar permisos y dueños de lo que le pertenece.
Root puede cambiar todo, lo que lo convierte en una herramienta poderosa… o en un desastre en manos torpes.

sudo chown root:root /home/alumno1
sudo chmod 700 /home/alumno1

Acabas de expulsar a alumno1 de su propia casa.
Es un experimento divertido para enseñar responsabilidad… o para que entiendan por qué root no es una buena costumbre.

Resumen

  • chown → cambia el dueño del archivo y su grupo
  • chgrp → cambia solo el grupo
  • chmod → cambia los permisos (r, w, x) en user/group/others
  • root puede cambiarlo todo
  • usuarios normales solo pueden cambiar sus propios archivos