Estructura de un servidor Linux

Este módulo explica cómo se organiza un servidor Linux en la práctica, qué directorios son críticos, cuáles se tocan habitualmente y cuáles no, y cómo esta estructura influye directamente en la administración, la seguridad y el troubleshooting.

Entender la estructura de un servidor es esencial para no romper el sistema, localizar problemas rápido y aplicar cambios con criterio.


Introducción

Linux tiene una estructura de directorios estándar, pero en un servidor no todos los directorios tienen el mismo peso.

Un sysadmin no necesita conocer cada archivo del sistema, pero sí debe saber:

  • Dónde está la configuración
  • Dónde están los datos
  • Dónde escriben los servicios
  • Qué directorios son críticos
  • Qué se puede tocar y qué no

Muchos incidentes en producción ocurren simplemente por modificar archivos en el lugar incorrecto.

En servidores, saber dónde estás es tan importante como saber qué comando ejecutar.


Visión general del filesystem en servidores

Todo en Linux cuelga de un único punto raíz:

/

Desde ahí se organiza el sistema en directorios con responsabilidades claras.

En administración de servidores, los más importantes son:

  • /etc → configuración
  • /var → datos cambiantes
  • /srv → datos de servicios
  • /opt → software adicional
  • /home → usuarios (si aplica)
  • /tmp → temporales
  • /usr → software del sistema

/etc — Configuración del sistema

El directorio más crítico para un sysadmin.

Contiene:

  • Configuración del sistema
  • Configuración de servicios
  • Configuración de red
  • Configuración de usuarios

Ejemplos importantes:

/etc/passwd
/etc/group
/etc/ssh/sshd_config
/etc/nginx/nginx.conf

Características clave:

  • Archivos de texto
  • Cambios tienen impacto inmediato o tras reiniciar servicios
  • Debe estar respaldado

⚠️ Nunca edites /etc sin saber exactamente qué estás cambiando.


/var — Datos variables del sistema

Aquí vive todo lo que cambia con el tiempo.

Incluye:

  • Logs
  • Cachés
  • Colas
  • Bases de datos de servicios
  • Archivos temporales persistentes

Subdirectorios clave:

/var/log
/var/lib
/var/cache
/var/spool

Ejemplo:

/var/log/nginx/
/var/lib/mysql/

💡 Muchos problemas “raros” vienen de un /var lleno.


/srv — Datos de servicios

Diseñado para contener datos servidos por servicios.

Ejemplos:

/srv/www
/srv/ftp
/srv/app

Ventajas:

  • Separación clara entre sistema y datos
  • Facilita backups
  • Facilita migraciones

✅ Muy recomendable en servidores bien organizados.


/opt — Software adicional

Usado para:

  • Software no gestionado por el sistema
  • Aplicaciones de terceros
  • Instalaciones manuales

Ejemplo:

/opt/sonarqube
/opt/custom-app

Características:

  • No mezcla binarios con el sistema
  • Facilita mantenimiento
  • Reduce riesgo en actualizaciones

/home — Directorios de usuarios

En servidores:

  • Puede no existir para usuarios humanos
  • A veces solo contiene cuentas técnicas
  • No debe usarse para datos de servicios

Ejemplo:

/home/admin
/home/backup

⚠️ En servidores, /home no es un lugar genérico para guardar cosas.


/tmp — Archivos temporales

Directorio para datos temporales:

/tmp

Características:

  • Acceso amplio
  • Limpieza automática
  • No persistente

⚠️ Nunca guardes datos importantes en /tmp.


/usr — Software del sistema

Contiene:

  • Binarios (/usr/bin)
  • Librerías (/usr/lib)
  • Documentación (/usr/share)

Ejemplo:

/usr/bin/ls
/usr/bin/ssh

❗ Como sysadmin, no deberías modificar /usr manualmente.


Separación clave en servidores

Un buen sysadmin distingue claramente entre:

Tipo Ubicación
Configuración /etc
Datos /var, /srv
Software /usr, /opt
Temporales /tmp

Esta separación facilita:

  • Backups
  • Seguridad
  • Diagnóstico
  • Recuperación ante fallos

Estructura típica de un servicio

Ejemplo de servicio web bien organizado:

/etc/nginx/          → configuración
/var/log/nginx/      → logs
/srv/www/app/        → datos
/usr/sbin/nginx      → binario

Si sabes esto, sabes dónde mirar cuando algo falla.


Puntos críticos / Errores comunes

Errores habituales en administración:

  • Guardar datos en /etc
  • Editar archivos en /usr
  • Mezclar datos y configuración
  • Usar /tmp para cosas importantes
  • No saber qué directorio se está tocando
  • No respaldar /etc y /var

Consejo: si no sabes qué contiene un directorio, no lo toques.


Ejercicios prácticos

1. Identificar estructura del sistema

ls /

Identifica qué directorios son críticos para un sysadmin.


2. Analizar un servicio instalado

dpkg -L nginx

Localiza:

  • Configuración
  • Logs
  • Binario

3. Revisar uso de /var

df -h /var
du -sh /var/log/*

Mentalidad

Un sysadmin debe pensar así:

  • Cada directorio tiene una función
  • No todo es un “sitio donde guardar cosas”
  • La organización evita incidentes
  • La estructura ayuda al troubleshooting
  • Saber dónde mirar ahorra tiempo y errores

La estructura del sistema es mapa mental del servidor.


Resumen

  • Todo en Linux cuelga de /
  • /etc contiene configuración crítica
  • /var contiene datos cambiantes y logs
  • /srv y /opt ayudan a organizar servicios
  • Separar datos, configuración y software es clave
  • Muchos errores vienen de tocar el sitio incorrecto

Siguiente paso

En el siguiente módulo entrarás en:

Gestión de usuarios en servidores Linux 03-usuarios.md

Donde verás:

  • Usuarios humanos vs usuarios técnicos
  • Grupos como herramienta administrativa
  • Uso correcto de sudo en servidores
  • Buenas prácticas de acceso en producción