#!/bin/bash

#Comprobar paso de argumento
if [ $# -ne 1 ]; then
	echo "Uso: $0 <directorio>"
	exit 1
fi

DIR=$1

#Comprobar que DIR es un directorio
if [ ! -d "$DIR" ]; then
	echo "ERROR: $DIR no es un directorio o no existe"
	exit 1
fi

#Comprobar todos los archivos de cada usuario
for FICH in "$DIR"/*; do
	DATOS_USER=$(stat -c %a "$FICH")
	DATOS_SSH=$(stat -c %a "$FICH/.ssh")
	DATOS_CLAVE=$(stat -c %a "$FICH/.ssh/id_rsa")

	echo "--- INFORME DE SEGURIDAD SSH ---" > "$FICH/Desktop/AVISO.txt"

	if [[ "$DATOS_USER" -ne 774 ]]; then
		echo "ALERTA: Se ha detectado una vulnerabilidad en la carpeta del usuario. PRIVILEGIOS: $DATOS_USER"
		touch "$FICH/Desktop/AVISO.txt"
		echo "Tu carpeta de usuario no es segura, deberia tener los permisos: 774. CAMBIALO URGENTEMENTE" >> "$FICH/Desktop/AVISO.txt"
	fi
	if [[ "$DATOS_SSH" -ne 700 ]]; then
		echo "ALERTA: Se ha detectado una vulnerabilidad en la carpeta del ssh. PRIVILEGIOS: $DATOS_SSH"
		touch "$FICH/Desktop/AVISO.txt"
		echo "Tu carpeta SSH no es segura, deberia tener los permisos: 700. CAMBIALO URGENTEMENTE" >> "$FICH/Desktop/AVISO.txt"
	fi
	if [[ "$DATOS_CLAVE" -ne 600 ]]; then
		echo "ALERTA: Se ha detectado una vulnerabilidad en los datos de la clave. PRIVILEGIOS: $DATOS_CLAVE"
		touch "$FICH/Desktop/AVISO.txt"
		echo "Tu clave SSH no es segura, deberia tener los permisos: 600. CAMBIALO URGENTEMENTE" >> "$FICH/Desktop/AVISO.txt"
	fi
done