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.
¿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
Guía de Uso
Auditoría de Permisos
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
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 /
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
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
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
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
#!/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
- 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