Permisos de archivos rwx en Linux

Resumen

Cuando compartes una computadora o un servidor con otras personas, necesitas controlar quién puede leer, modificar o ejecutar cada archivo. Los permisos de archivos en Linux y otros sistemas tipo Unix resuelven exactamente eso: definen qué puede hacer cada usuario sobre cada archivo, y son la base de la seguridad informática que usas todos los días sin darte cuenta.

¿Por qué existen los permisos de archivos en sistemas operativos?

Cada vez que compras un hosting en DigitalOcean o Amazon Web Services, en realidad estás compartiendo un pedacito de un computador con cientos o miles de usuarios. Sin un sistema de permisos, cualquiera podría leer tu nómina, borrar tu código o ejecutar programas en tu nombre.

Imagina un archivo llamado nomina.html dentro de un servidor compartido. Lo lógico es que existan tres niveles de acceso:

  • El administrador, dueño de la máquina, puede hacer todo.
  • Un grupo de trabajo, por ejemplo devs, puede leer y escribir.
  • El público general solo puede leer, sin modificar ni ejecutar.

Esa jerarquía es la que vas a encontrar en cualquier servidor Linux que administres.

¿Qué significan los permisos rwx en Linux y Mac?

En los sistemas tipo Unix, como Linux y Mac, los permisos se representan con tres letras minúsculas que aparecen agrupadas cuando listas archivos en la terminal.

  • r (read): permiso de lectura, puedes ver el contenido del archivo.
  • w (write): permiso de escritura, puedes modificarlo o borrarlo.
  • x (execute): permiso de ejecución, el archivo puede correr como aplicación en la CPU.

Siguiendo el ejemplo anterior, el administrador tendría rwx sobre nomina.html, los devs tendrían rw y el público solo r. Esa combinación es la que define el nivel de privilegio de cada usuario.

¿Qué es el permiso de ejecución en Linux? Es la capacidad de que el contenido de un archivo corra como aplicación en la CPU. Se activa colocando la letra x en sus permisos, sin necesidad de cambiar la extensión.

¿Cómo se cambian los permisos con chmod y chown?

Para modificar quién puede hacer qué sobre un archivo, Linux ofrece comandos específicos en la terminal. El más popular es chmod, abreviatura de change mode, que recibe números que representan combinaciones de rwx. Profundizar en esos números merece un curso de Linux completo, pero la idea base es simple: tú decides qué grupo recibe qué letras.

Cuando lo que quieres es cambiar al dueño del archivo, usas chown. El dueño suele ser el usuario que creó el archivo: si los devs lo crearon, los devs son los dueños, y de ahí depende quién más puede acceder.

En Windows y Mac, este mismo cambio se hace por la interfaz gráfica. Le das clic derecho al archivo, abres sus propiedades o información, y ahí ves los permisos y los puedes editar.

¿Qué hace el comando sudo en Linux?

Hay momentos en que necesitas privilegios de administrador sin cerrar tu sesión actual. Para eso existe sudo.

¿Qué es sudo y cómo se usa? Es un comando que ejecuta otro comando con permisos de administrador. Escribes sudo, espacio y el comando; el sistema te pide la contraseña del administrador y lo ejecuta con esos privilegios.

En Windows el equivalente es darle clic derecho a un archivo y elegir Correr como administrador. La diferencia es que en Windows casi todo ocurre en la interfaz gráfica, mientras que en Linux casi todo pasa por la terminal.

¿Cómo manejan Windows, Mac y móviles los archivos ejecutables?

La forma de marcar un archivo como ejecutable cambia según el sistema operativo, y eso afecta directamente tu seguridad.

En Windows, los ejecutables necesitan la extensión .exe. Al correrlos, el sistema muestra una advertencia preguntando si confías en la aplicación. Algunos desarrolladores le piden a Microsoft una llave especial de cifrado para firmar sus aplicaciones y evitar esa advertencia.

En Mac ocurre algo parecido con Apple cuando descargas apps fuera de la App Store. En cambio, en sistemas móviles como Android e iOS, no hace falta este permiso adicional porque Google y Apple revisan las aplicaciones antes de publicarlas.

En Linux, no necesitas una extensión especial. Un script de Python, que internamente es un archivo de texto, puede volverse ejecutable simplemente activando la x en sus permisos.

¿Cuál es la mejor práctica de seguridad con permisos?

La regla de oro es dar siempre la mínima cantidad de permisos y privilegios necesarios. Entre más permisos tenga un archivo, más problemas de seguridad puede traer.

Si un archivo solo necesita leerse, no le des permisos de escritura. Si nunca debe correrse como aplicación, no le actives la ejecución. Pensar así protege tus servidores y tus equipos del día a día.

¿Ya habías administrado permisos en un servidor compartido? Cuéntame en los comentarios qué comando usas más seguido cuando configuras un nuevo proyecto.