Los permisos de archivos son esenciales para la seguridad y el funcionamiento eficiente de un servidor. Permiten controlar quién puede leer, escribir o ejecutar un archivo. Este post explica cómo funcionan los permisos de archivos en un servidor, cómo se configuran y cómo se gestionan.

Estructura de Permisos

En sistemas tipo Unix/Linux, los permisos de archivos están organizados en tres categorías:

  1. Usuario (Owner): El propietario del archivo.
  2. Grupo (Group): Un grupo de usuarios que tienen acceso al archivo.
  3. Otros (Others): Todos los demás usuarios.

Cada categoría tiene tres tipos de permisos:

  • Lectura (Read – r): Permite leer el contenido del archivo.
  • Escritura (Write – w): Permite modificar el contenido del archivo.
  • Ejecución (Execute – x): Permite ejecutar el archivo si es un script o un programa.

Representación de Permisos

Los permisos se representan mediante una combinación de caracteres y números. Por ejemplo, los permisos rwxr-xr-- se descomponen de la siguiente manera:

  • Usuario (Owner): rwx (lectura, escritura, ejecución)
  • Grupo (Group): r-x (lectura, sin escritura, ejecución)
  • Otros (Others): r-- (lectura, sin escritura, sin ejecución)

En formato numérico, estos permisos se representan como 755:

  • rwx = 4 + 2 + 1 = 7
  • r-x = 4 + 0 + 1 = 5
  • r– = 4 + 0 + 0 = 4

Comandos Básicos para Gestionar Permisos

1. ls -l

El comando ls -l muestra una lista detallada de archivos y directorios con sus permisos. Ejemplo de salida:

-rwxr-xr-- 1 usuario grupo 1234 jun 1 12:34 archivo.txt

2. chmod

El comando chmod cambia los permisos de un archivo o directorio. Sintaxis básica:

chmod [permisos] [archivo]

Ejemplos:

  • Modo simbólico: chmod u+x archivo.txt (añade permiso de ejecución al usuario)
  • Modo numérico: chmod 755 archivo.txt (establece permisos rwxr-xr-x)

3. chown

El comando chown cambia el propietario de un archivo o directorio. Sintaxis básica:

chown [usuario] [archivo]

Ejemplo:

chown usuario archivo.txt

4. chgrp

El comando chgrp cambia el grupo propietario de un archivo o directorio. Sintaxis básica:

chgrp [grupo] [archivo]

Ejemplo:

chgrp grupo archivo.txt

Ejemplos Prácticos

Cambiar permisos usando chmod

  1. Dar permisos completos al propietario y solo lectura al grupo y otros:
chmod 744 archivo.txt
  1. Quitar permisos de escritura al grupo y otros:
chmod go-w archivo.txt

Cambiar propietario y grupo usando chown y chgrp

  1. Cambiar el propietario del archivo:
chown nuevo_usuario archivo.txt
  1. Cambiar el grupo propietario del archivo:
chgrp nuevo_grupo archivo.txt
  1. Cambiar tanto el propietario como el grupo:
chown nuevo_usuario:nuevo_grupo archivo.txt

Permisos Especiales

Además de los permisos básicos, existen permisos especiales que ofrecen funcionalidades adicionales:

  • Setuid (Set User ID): chmod u+s archivo – Ejecuta el archivo con los permisos del propietario.
  • Setgid (Set Group ID): chmod g+s archivo – Ejecuta el archivo con los permisos del grupo.
  • Sticky Bit: chmod +t directorio – Solo el propietario puede eliminar archivos en el directorio.

Entender y gestionar los permisos de archivos es crucial para mantener la seguridad y el correcto funcionamiento de un servidor. Con los comandos ls -l, chmod, chown y chgrp, puedes administrar eficazmente quién tiene acceso a tus archivos y qué pueden hacer con ellos.