79 lines
1.9 KiB
Bash
Executable File
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 "$@"
|