#!/bin/bash # Locale-Einstellungen, damit der Mail-Befehl keine Zeichenkodierungsfehler verursacht export LC_ALL=C.UTF-8 export LANG=C.UTF-8 # Logdatei für das Debugging (Schreibrechte setzen: chmod 666 /tmp/sftp-notify.log) LOGFILE="/tmp/sftp-notify.log" # Benachrichtigung nur bei erfolgreichen Anmeldungen (open_session) if [ "$PAM_TYPE" = "open_session" ]; then # Umgebung in Log speichern echo "--- $(/usr/bin/date): Anmeldeversuch für $PAM_USER von $PAM_RHOST ---" >> "$LOGFILE" # Überprüfung der Benutzer-Shell USER_SHELL=$(/usr/bin/getent passwd "$PAM_USER" | /usr/bin/cut -d: -f7) # Bestimmung des Typs if [[ "$USER_SHELL" == *"/nologin" ]] || [[ "$USER_SHELL" == *"/false" ]]; then LOGIN_TYPE="SFTP (Eingeschränkt)" else LOGIN_TYPE="SSH (Interaktiv)" fi MESSAGE="Anmeldebenachrichtigung ($PAM_SERVICE): Typ: $LOGIN_TYPE Benutzer: $PAM_USER Remote-Host: $PAM_RHOST Shell: $USER_SHELL Zeitpunkt: $(/usr/bin/date) Host: $(/usr/bin/hostname)" # E-Mail-Versand (mit absolutem Pfad) # Prüfen, ob der 'mail'-Befehl unter /usr/sbin/mail verfügbar ist! echo "$MESSAGE" | /usr/sbin/mail -s "$LOGIN_TYPE: $PAM_USER" i.meszely@antares-apo.de >> "$LOGFILE" 2>&1 if [ $? -eq 0 ]; then echo "Erfolg: E-Mail gesendet." >> "$LOGFILE" else echo "FEHLER: E-Mail-Versand fehlgeschlagen! (Exit code: $?)" >> "$LOGFILE" fi fi exit 0