#!/bin/bash # Funktion zur Installation erforderlicher Pakete install_packages() { local DISTRO=$1 case $DISTRO in "debian"|"ubuntu") apt-get update apt-get install -y realmd samba-common samba-common-bin krb5-user sssd adcli packagekit ;; "rhel"|"centos"|"fedora") yum install -y realmd samba samba-common samba-common-tools krb5-workstation sssd adcli ;; "arch") pacman -Syu --noconfirm realmd samba krb5 sssd adcli ;; *) echo "Unsupported distribution: $DISTRO" exit 1 ;; esac } # Funktion zum Joinen der Domäne join_domain() { local DOMAIN=$1 local USER=$2 local PASSWORD=$3 echo "Konfiguriere Domain-Join für Domain: $DOMAIN" # Realm beitreten echo "$PASSWORD" | realm join --user="$USER" "$DOMAIN" --password # Überprüfen, ob der Join erfolgreich war if [ $? -eq 0 ]; then echo "Domain join erfolgreich!" else echo "Fehler beim Domain Join." exit 1 fi # Automatische Anmeldung aktivieren if [ -f /etc/pam.d/common-session ]; then sed -i 's/^.*pam_sssd.so/#&/' /etc/pam.d/common-session sed -i 's/^.*pam_sssd.so/#&/' /etc/pam.d/common-session-noninteractive sed -i '/common-session/a session required pam_mkhomedir.so skel=/etc/skel umask=0022' /etc/pam.d/common-session fi } # Funktion zur Erkennung der Distribution get_distro() { if [ -f /etc/os-release ]; then . /etc/os-release echo "$ID" else echo "Unknown" fi } # Hauptskript main() { if [ "$#" -ne 3 ]; then echo "Usage: $0 " exit 1 fi local DOMAIN=$1 local USER=$2 local PASSWORD=$3 local DISTRO=$(get_distro) install_packages "$DISTRO" join_domain "$DOMAIN" "$USER" "$PASSWORD" } main "$@"