🔒 Linux Security

Gestión de Permisos Linux

Scripts avanzados para automatizar la auditoría y gestión de permisos de archivos en sistemas Linux. Herramientas profesionales para asegurar la integridad y seguridad del sistema.

5 Scripts
777 Permisos
100% Bash

¿Qué es la Gestión de Permisos Linux?

🎯

Objetivo

Automatizar la auditoría y gestión de permisos para garantizar la seguridad y conformidad en sistemas Linux.

Tecnología

Desarrollado con scripts Bash nativos usando comandos como ls, chmod, chown y find para máxima compatibilidad.

🛡️

Seguridad

Implementa mejores prácticas de seguridad para proteger archivos sensibles y cumplir con políticas corporativas.

Características Principales

📊

Auditoría Automática

Escaneo completo del sistema para identificar archivos y directorios con permisos incorrectos o vulnerables.

  • ✅ Detección de permisos excesivos
  • ✅ Archivos con permisos 777
  • ✅ Configuraciones SUID/SGID
  • ✅ Reportes detallados
🔧

Corrección Automática

Scripts para aplicar automáticamente las correcciones de permisos según políticas predefinidas.

  • ✅ Aplicación masiva de permisos
  • ✅ Respaldo antes de cambios
  • ✅ Verificación post-corrección
  • ✅ Logs de todas las acciones

Demostración Interactiva

Terminal - Gestión de Permisos Linux

Guía de Uso

Auditoría de Permisos

1

Preparar el entorno

Descarga y configura los scripts de auditoría en tu sistema.

# Clonar el repositorio
git clone https://github.com/th3herrera/File_permissions_in_Linux.git
cd File_permissions_in_Linux

# Dar permisos de ejecución
chmod +x *.sh
2

Ejecutar auditoría completa

Analiza los permisos de un directorio específico o todo el sistema.

# Auditar directorio específico
./audit_permissions.sh /home/usuario/proyectos

# Auditar sistema completo (requiere sudo)
sudo ./audit_permissions.sh /
3

Analizar resultados

Revisa el reporte generado con todas las vulnerabilidades encontradas.

# Ver reporte de auditoría
cat audit_report_$(date +%Y%m%d).txt

# Filtrar archivos críticos
grep "777\|666" audit_report_$(date +%Y%m%d).txt

Corrección Automática

1

Crear respaldo de seguridad

Genera una copia de seguridad de la configuración actual antes de realizar cambios.

# Crear respaldo de permisos actuales
./backup_permissions.sh /home/usuario/proyectos

# Verificar que el respaldo se creó correctamente
ls -la backups/permissions_backup_*.txt
2

Aplicar correcciones

Ejecuta las correcciones automáticas según las políticas de seguridad establecidas.

# Aplicar correcciones automáticas
./fix_permissions.sh /home/usuario/proyectos

# Corrección manual de archivos específicos
chmod 644 documento_confidencial.txt
chmod 755 script_importante.sh
3

Verificar y validar

Confirma que los permisos se han aplicado correctamente y el sistema funciona.

# Verificar permisos aplicados
./verify_permissions.sh /home/usuario/proyectos

# Comparar con el estado anterior
diff backups/permissions_backup_*.txt current_permissions.txt

Implementación Técnica

audit_permissions.sh
#!/bin/bash

# Script de auditoría de permisos de archivos
# Autor: Jorge Herrera (TIBU-SBY)
# Descripción: Analiza permisos de archivos y genera reportes de seguridad

AUDIT_DIR="${1:-$(pwd)}"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
REPORT_FILE="audit_report_${TIMESTAMP}.txt"
LOG_FILE="audit_log_${TIMESTAMP}.log"

# Función para logging
log_message() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

# Verificar si el directorio existe
if [[ ! -d "$AUDIT_DIR" ]]; then
    log_message "ERROR: El directorio $AUDIT_DIR no existe"
    exit 1
fi

log_message "Iniciando auditoría de permisos en: $AUDIT_DIR"

# Crear reporte
{
    echo "=== REPORTE DE AUDITORÍA DE PERMISOS ==="
    echo "Directorio analizado: $AUDIT_DIR"
    echo "Fecha y hora: $(date)"
    echo "Usuario que ejecuta: $(whoami)"
    echo "============================================"
    echo ""

    # Archivos con permisos 777 (muy peligrosos)
    echo "🚨 ARCHIVOS CON PERMISOS 777 (CRÍTICO):"
    find "$AUDIT_DIR" -type f -perm 777 -ls 2>/dev/null | head -20
    echo ""

    # Archivos con permisos de escritura mundial
    echo "⚠️  ARCHIVOS CON ESCRITURA MUNDIAL:"
    find "$AUDIT_DIR" -type f -perm -002 -ls 2>/dev/null | head -30
    echo ""

    # Archivos SUID/SGID
    echo "🔐 ARCHIVOS CON SUID/SGID:"
    find "$AUDIT_DIR" -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null
    echo ""

    # Directorios con permisos excesivos
    echo "📁 DIRECTORIOS CON PERMISOS EXCESIVOS:"
    find "$AUDIT_DIR" -type d -perm -002 -ls 2>/dev/null | head -20
    echo ""

    # Archivos sin propietario
    echo "👤 ARCHIVOS SIN PROPIETARIO VÁLIDO:"
    find "$AUDIT_DIR" -nouser -o -nogroup 2>/dev/null | head -10
    echo ""

    # Resumen estadístico
    echo "📊 RESUMEN ESTADÍSTICO:"
    total_files=$(find "$AUDIT_DIR" -type f 2>/dev/null | wc -l)
    critical_files=$(find "$AUDIT_DIR" -type f -perm 777 2>/dev/null | wc -l)
    world_writable=$(find "$AUDIT_DIR" -type f -perm -002 2>/dev/null | wc -l)
    
    echo "- Total de archivos analizados: $total_files"
    echo "- Archivos críticos (777): $critical_files"
    echo "- Archivos con escritura mundial: $world_writable"
    
} > "$REPORT_FILE"

log_message "Auditoría completada. Reporte guardado en: $REPORT_FILE"
echo "📋 Reporte de auditoría: $REPORT_FILE"
echo "📝 Log de ejecución: $LOG_FILE"

Consideraciones de Seguridad

⚠️

Uso Responsable

Esta herramienta debe utilizarse únicamente en sistemas propios o con autorización explícita del administrador. Siempre crea respaldos antes de aplicar cambios masivos de permisos.

Mejores Prácticas

  • Siempre crear respaldos antes de modificar permisos
  • Probar cambios en entornos de desarrollo
  • Documentar todos los cambios realizados
  • Revisar logs periódicamente
  • Implementar monitoreo continuo

Políticas de Cumplimiento

  • Seguir estándares ISO 27001
  • Cumplir con regulaciones GDPR
  • Implementar principio de menor privilegio
  • Auditorías regulares de acceso
  • Segregación de responsabilidades

Detalles Técnicos

Tecnologías Utilizadas

Bash Linux chmod find stat
  • Scripts Bash nativos para máxima compatibilidad
  • Comandos estándar de Unix/Linux
  • Sin dependencias externas
  • Compatible con todas las distribuciones

Características Avanzadas

  • Procesamiento en lotes eficiente
  • Logging detallado de operaciones
  • Validación de entrada robusta
  • Manejo de errores comprehensivo
  • Reportes en múltiples formatos
  • Integración con sistemas de monitoreo

Rendimiento

  • Optimizado para grandes volúmenes de archivos
  • Procesamiento paralelo cuando es posible
  • Uso mínimo de recursos del sistema
  • Tiempo de ejecución predecible
  • Escalable a entornos empresariales

🚀 ¿Te ha gustado este proyecto?

Conecta conmigo y explora más proyectos de ciberseguridad