Linux-RDP-Client/setup.sh

93 lines
2.3 KiB
Bash

#!/bin/bash
# === Schritt 1: System aktualisieren und Pakete installieren ===
echo "System wird aktualisiert..."
sudo apt update && sudo apt upgrade -y
echo "Pakete werden installiert..."
sudo apt install --no-install-recommends \
xserver-xorg \
xinit \
openbox \
yad \
freerdp2-x11 \
xautolock \
xscreensaver \
ifupdown \
curl \
-y
# === Schritt 2: Hostname setzen anhand der MAC-Adresse ===
echo "Ermittle MAC-Adresse der ersten Netzwerkkarte..."
IFACE=$(ip -o link show | awk -F': ' '{print $2}' | grep -v lo | head -n1)
MAC=$(cat /sys/class/net/$IFACE/address)
HOSTNAME="rdp-$(echo $MAC | tr -d ':')"
echo "Setze Hostnamen auf: $HOSTNAME"
sudo hostnamectl set-hostname "$HOSTNAME"
# === Schritt 3: .xinitrc mit RDP-Login (inkl. Domäne) ===
echo "Erstelle .xinitrc für den Benutzer..."
cat <<'EOF' > ~/.xinitrc
#!/bin/bash
# Bildschirm-Timeouts setzen
xset s 300 300
xset +dpms
xset dpms 300 300 300
# Automatische Sperre nach Inaktivität
xautolock -time 10 -locker "xscreensaver -lock" &
# Starte Fenstermanager
openbox &
# Login-Fenster
while true; do
FORM=$(yad --form --center \
--title="RDP Login" \
--field="Benutzername" \
--field="Passwort:HP" \
"" "" "")
[ $? -ne 0 ] && break
USER=$(echo "$FORM" | cut -d'|' -f1)
PASS=$(echo "$FORM" | cut -d'|' -f2)
HOST="172.19.1.5"
yad --info --title="Verbindung" --text="Verbinde zu $HOST als $DOMAIN\\$USER..." --timeout=2
xfreerdp /u:"$USER" /p:"$PASS" /v:"$HOST" /f +auto-reconnect /rfx
# Nach Trennung: Rückfrage
yad --question --text="Verbindung beendet. Erneut verbinden?" --timeout=10
[ $? -ne 0 ] && break
done
#poweroff
EOF
chmod +x ~/.xinitrc
# === Schritt 4: Autologin für den Benutzer ===
echo "Aktiviere Autologin für rdpuser..."
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
cat <<EOF | sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I \$TERM
EOF
# === Schritt 5: X automatisch bei Anmeldung starten ===
echo "Setze automatischen Start von X..."
cat <<EOF >> ~/.bash_profile
if [ -z "\$DISPLAY" ] && [ "\$(tty)" = "/dev/tty1" ]; then
startx
fi
EOF
# === Abschluss ===
echo "Setup abgeschlossen. Starte das System neu:"
echo " sudo reboot"