Files

79 lines
1.9 KiB
Bash
Executable File

#!/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 <domain> <username> <password>"
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 "$@"