Add Ansible/user-anlegen.sh

This commit is contained in:
2025-05-07 06:19:12 +00:00
parent 704d968900
commit 04d35bb597

68
Ansible/user-anlegen.sh Normal file
View File

@@ -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."