diff --git a/Ansible/user-anlegen.sh b/Ansible/user-anlegen.sh new file mode 100644 index 0000000..95728a1 --- /dev/null +++ b/Ansible/user-anlegen.sh @@ -0,0 +1,68 @@ +#!/bin/bash +USERNAME="ansible" +SSH_KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICBpQgsPoNARIuzw+YTuADA8lk7S3y9wqvPxtDAsdYbw ansible@deploy" + +# OS-Erkennung +if [ -f /etc/os-release ]; then + . /etc/os-release + OS_ID=$ID +else + echo "Kann Betriebssystem nicht erkennen." + exit 1 +fi + +# Funktion: Ansible-Benutzer unter RHEL/AlmaLinux/CentOS +setup_rhel() { + echo "[+] RHEL/AlmaLinux erkannt – Benutzer wird mit useradd erstellt" + sudo useradd -m -s /bin/bash "$USERNAME" +} + +# Funktion: Ansible-Benutzer unter Debian/Ubuntu +setup_debian() { + echo "[+] Debian/Ubuntu erkannt – Benutzer wird mit adduser erstellt" + sudo adduser --disabled-password --gecos "" "$USERNAME" +} + +# Funktion: Ansible-Benutzer unter Alpine +setup_alpine() { + echo "[+] Alpine Linux erkannt – Benutzer wird mit adduser erstellt" + sudo adduser -D -s /bin/sh "$USERNAME" + + # Das ! aus dem Passwortfeld in /etc/shadow entfernen, um den Account zu entsperren + echo "[+] Entsperre den Benutzer für SSH-Key-Authentifizierung" + sudo sed -i "s/^$USERNAME:!/$USERNAME:*/" /etc/shadow +} + +# Hauptlogik +if id "$USERNAME" &>/dev/null; then + echo "[!] Benutzer $USERNAME existiert bereits – überspringe Erstellung" +else + case "$OS_ID" in + almalinux|centos|rhel|rocky) + setup_rhel + ;; + debian|ubuntu) + setup_debian + ;; + alpine) + setup_alpine + ;; + *) + echo "[!] Nicht unterstütztes Betriebssystem: $OS_ID" + exit 1 + ;; + esac +fi + +# SSH-Verzeichnis einrichten +sudo mkdir -p /home/$USERNAME/.ssh +echo "$SSH_KEY" | sudo tee /home/$USERNAME/.ssh/authorized_keys > /dev/null +sudo chmod 700 /home/$USERNAME/.ssh +sudo chmod 600 /home/$USERNAME/.ssh/authorized_keys +sudo chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh + +# Sudo ohne Passwort erlauben +echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USERNAME > /dev/null +sudo chmod 440 /etc/sudoers.d/$USERNAME + +echo "[✓] Benutzer $USERNAME wurde erfolgreich eingerichtet." \ No newline at end of file