#!/bin/bash # ============================================================================== # Schulungsraum-PC Setup-Skript für Linux Mint (Final & Korrigiert) # ============================================================================== set -e if [ "$EUID" -ne 0 ]; then echo "[-] Bitte mit Administratorrechten ausführen: sudo bash $0" exit 1 fi echo "[+] Starte das Setup für den Schulungsraum-PC..." # 1. Basis-Pakete und Zoom PACKAGES_TO_INSTALL=(wget curl git xdg-utils brightnessctl alsa-utils) for pkg in "${PACKAGES_TO_INSTALL[@]}"; do if ! dpkg -l | grep -q "ii $pkg "; then apt update && apt install -y "$pkg"; fi done if ! dpkg -l | grep -q "ii zoom "; then ZOOM_DEB="/tmp/zoom_amd64.deb" wget -O "$ZOOM_DEB" https://zoom.us/client/latest/zoom_amd64.deb apt install -y "$ZOOM_DEB" && rm -f "$ZOOM_DEB" fi # 2. Willkommensbildschirm deaktivieren mkdir -p /etc/xdg/autostart cat << 'EOF' > /etc/xdg/autostart/mintwelcome.desktop [Desktop Entry] Type=Application Name=Mint Welcome Hidden=true EOF # 3. Firefox Startseite konfigurieren mkdir -p /etc/firefox/policies cat << 'EOF' > /etc/firefox/policies/policies.json { "policies": { "Homepage": { "URL": "https://start.5k.de", "Locked": true }, "NewTabPage": { "Locked": false }, "DisableTelemetry": true } } EOF # 4. Hintergrundbilder laden WALLPAPERS_DIR="/usr/share/backgrounds/5k_akademie" mkdir -p "$WALLPAPERS_DIR" wget -q -O "$WALLPAPERS_DIR/desktop.jpg" "https://5k.de/schulung_laptop/desktop.jpg" || true wget -q -O "$WALLPAPERS_DIR/anmeldung.jpg" "https://5k.de/schulung_laptop/anmeldung.jpg" || true chmod 644 "$WALLPAPERS_DIR"/*.jpg 2>/dev/null || true # 5. Anmeldebildschirm konfigurieren mkdir -p /etc/lightdm cat << 'EOF' > /etc/lightdm/slick-greeter.conf [Greeter] background=/usr/share/backgrounds/5k_akademie/anmeldung.jpg background-style=zoom theme-name=Mint-Y icon-theme-name=Mint-Y draw-user-backgrounds=false EOF # 6. Gastkonto ohne Passwort & Autologin if ! id "guest" &>/dev/null; then useradd -m -s /bin/bash guest fi passwd -d guest || true groupadd -f nopasswdlogin || true usermod -aG nopasswdlogin guest || true cat << 'EOF' > /etc/lightdm/lightdm.conf [Seat:*] greeter-session=slick-greeter autologin-user=guest autologin-user-timeout=0 user-session=cinnamon EOF # 7. Zoom Einstellungen (Beenden statt Tray) mkdir -p /etc/skel/.config cat << 'EOF' > /etc/skel/.config/zoomus.conf [General] AutoFullScreenWhenViewJoinMeeting=false CheckForUpdatesAtStartup=false EnableDualScreen=false IsSupportMinimizeToTray=false ShowMinimizeDialog=false EOF # 8. Reset-Service RESET_SERVICE="/usr/local/bin/reset-guest-home.sh" cat << 'EOF' > "$RESET_SERVICE" #!/bin/bash if id "guest" &>/dev/null; then pkill -u guest || true rm -rf /home/guest cp -r /etc/skel /home/guest mkdir -p /home/guest/.config/dconf cat << 'DCONF_EOF' > /home/guest/.config/dconf/user [org/cinnamon/desktop/background] picture-uri='file:///usr/share/backgrounds/5k_akademie/desktop.jpg' picture-options='zoom' [org/cinnamon/desktop/screensaver] lock-enabled=false ask-for-password=false DCONF_EOF chown -R guest:guest /home/guest fi brightnessctl set 100% || true amixer set Master 50% unmute || true EOF chmod +x "$RESET_SERVICE" cat << 'EOF' > /etc/systemd/system/reset-guest.service [Unit] Description=Reset Guest Home Directory Before=lightdm.service [Service] Type=oneshot ExecStart=/usr/local/bin/reset-guest-home.sh [Install] WantedBy=multi-user.target EOF systemctl enable reset-guest.service 2>/dev/null || true # 9. Update-Skript (Neustart) und Rechte UPDATE_SCRIPT="/usr/local/bin/update-setup.sh" cat << 'EOF' > "$UPDATE_SCRIPT" #!/bin/bash echo "Lade aktuelles Setup..." curl -s https://5k.de/schulung_laptop/setup.txt | bash sleep 2 EOF chmod +x "$UPDATE_SCRIPT" echo "guest ALL=(ALL) NOPASSWD: /usr/local/bin/update-setup.sh" > /etc/sudoers.d/5k-setup chmod 440 /etc/sudoers.d/5k-setup # 10. Zoom Launcher (Korrigiert für native App) ZOOM_LAUNCHER="/usr/local/bin/start-zoom-meeting.sh" cat << 'EOF' > "$ZOOM_LAUNCHER" #!/bin/bash pkill -f zoom || true sleep 1 exec /usr/bin/zoom "zoommtg://zoom.us/join?action=join&confno=86387234219" EOF chmod +x "$ZOOM_LAUNCHER" # 11. Desktop-Verknüpfungen erstellen create_desktop_link() { local dir="$1" local name="$2" local comment="$3" local exec_cmd="$4" local icon="$5" local term="$6" local filepath="$dir/${name// /_}.desktop" cat << EOF > "$filepath" [Desktop Entry] Version=1.0 Type=Application Name=$name Comment=$comment Exec=$exec_cmd Icon=$icon Terminal=$term StartupNotify=true EOF chmod +x "$filepath" gio set "$filepath" "metadata::trusted" true 2>/dev/null || true } for DIR in "/etc/skel/Schreibtisch" "/etc/skel/Desktop" "/home/guest/Schreibtisch" "/home/guest/Desktop"; do mkdir -p "$DIR" create_desktop_link "$DIR" "5K Schulungsraum" "Zoom App" "/usr/local/bin/start-zoom-meeting.sh" "zoom" "false" create_desktop_link "$DIR" "5K Homepage" "Website" "xdg-open https://5k.de" "web-browser" "false" create_desktop_link "$DIR" "5K Wiki" "Wiki" "xdg-open https://start.5k.de" "web-browser" "false" create_desktop_link "$DIR" "Setup Neustart" "Skript aktualisieren" "sudo /usr/local/bin/update-setup.sh" "system-software-update" "true" done # Harte Rechteübergabe an Gast, falls der Ordner existiert if [ -d "/home/guest" ]; then chown -R guest:guest /home/guest/Schreibtisch /home/guest/Desktop 2>/dev/null || true # Cinnamon Desktop aktualisieren, falls der Gast angemeldet ist su - guest -c "gio info /home/guest/Schreibtisch/5K_Schulungsraum.desktop" &>/dev/null || true fi echo "[+] Setup erfolgreich abgeschlossen!"