#!/bin/bash # SSH Login Notifier - Deinstallationsscript # https://git.techniverse.net/scriptos/ssh-login-notifier set -e INSTALL_DIR="/opt/ssh-login-notifier" PROFILE_HOOK="/etc/profile.d/ssh-login-notify.sh" ZSH_HOOK_MARKER="# SSH Login Notifier" # --- Hilfsfunktionen --- info() { echo -e "\e[32m[INFO]\e[0m $1"; } warn() { echo -e "\e[33m[WARN]\e[0m $1"; } error() { echo -e "\e[31m[ERROR]\e[0m $1"; exit 1; } check_root() { if [[ $EUID -ne 0 ]]; then error "Dieses Script muss als root ausgefuehrt werden (sudo)." fi } # --- Deinstallation --- remove_profile_hook() { if [[ -f "$PROFILE_HOOK" ]]; then info "Entferne Profile-Hook: ${PROFILE_HOOK}" rm -f "$PROFILE_HOOK" info "Profile-Hook entfernt." else info "Kein Profile-Hook gefunden - nichts zu entfernen." fi } remove_zsh_hook() { local zshrc="/etc/zsh/zshrc" if [[ -f "$zshrc" ]] && grep -qF "$ZSH_HOOK_MARKER" "$zshrc" 2>/dev/null; then info "Entferne Zsh-Hook aus ${zshrc}" sed -i "/^${ZSH_HOOK_MARKER}/,+2d" "$zshrc" sed -i '/^$/N;/^\n$/d' "$zshrc" info "Zsh-Hook entfernt." else info "Kein Zsh-Hook gefunden - nichts zu entfernen." fi } remove_files() { if [[ -d "$INSTALL_DIR" ]]; then info "Entferne Installationsverzeichnis: ${INSTALL_DIR}" rm -rf "$INSTALL_DIR" info "Dateien entfernt." else info "Installationsverzeichnis nicht gefunden - nichts zu entfernen." fi } # --- Hauptprogramm --- echo "" echo "SSH Login Notifier - Deinstallation" echo "====================================" echo "" check_root read -p "SSH Login Notifier wirklich deinstallieren? (j/N) " confirm if [[ "$confirm" != "j" && "$confirm" != "J" ]]; then info "Abgebrochen." exit 0 fi remove_profile_hook remove_zsh_hook remove_files echo "" info "SSH Login Notifier wurde vollstaendig deinstalliert." echo ""