#!/bin/bash # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird if [[ $EUID -ne 0 ]]; then echo "Dieses Skript muss als root ausgeführt werden." exit 1 fi # Tatsächlichen Benutzer ermitteln (nicht root) if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then echo "Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden." exit 1 fi USER_NAME="$SUDO_USER" # Eintrag aus getent passwd holen USER_ENTRY=$(getent passwd "$USER_NAME") # Backup der passwd Datei cp /etc/passwd /etc/passwd.bak if grep -q "^$USER_NAME:" /etc/passwd; then # Existierenden Eintrag aktualisieren sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd echo "Shell für $USER_NAME wurde auf zsh aktualisiert." else # Neuen Eintrag hinzufügen UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }') echo "$UPDATED_ENTRY" >> /etc/passwd echo "Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell." fi