#!/bin/bash # Überprüfen, ob das Skript als Root ausgeführt wird if [ "$(id -u)" -ne 0 ]; then echo "Dieses Skript muss als Root ausgeführt werden!" >&2 exit 1 fi # Systemaktualisierung apt-get update apt-get upgrade apt-get dist-upgrade # Prüfen, ob 'software-properties-common' installiert ist (notwendig für add-apt-repository) if ! dpkg -l | gr "$PROGRESS_FILE" # Wenn keine Fortschrittsdatei existiert, starten wir bei Schritt 1 STEP=1 fi # Schritt 1: Domänenbeitritt if [ "$STEP" -eq 1 ]; then # PPA hinzufügen und notwendige Pakete installieren add-apt-repository ppa:univention-dev/ppa apt-get update DEBIAN_FRONTEND=noninteractive apt-get install univention-domain-join echo "Bitte treten Sie nun mit der Desktop-Anwendung der Domäne bei" # Pause, bis der Benutzer eine Taste drückt read -p "Drücken Sie Enter, um fortzufahren..." echo "2" > "$PROGRESS_FILE" reboot fi # Schritt 2: LDAP-Gruppe für Sudo-Rechte und SSH-Zugriff konfigurieren if [ "$STEP" -eq 2 ]; then # LDAP-Gruppen anzeigen echo "Alle LDAP-Gruppen:" getent group # LDAP-Gruppe für Sudo-Rechte hinzufügen (Ändere 'Administrators' auf die gewünschte Gruppe) GRUPPE="Administrators" echo "Füge Gruppe $GRUPPE zu Sudo-Rechten hinzu..." # Sicherstellen, dass die Gruppe existiert if ! getent group $GRUPPE > /dev/null; then echo "Die Gruppe '$GRUPPE' existiert nicht. Bitte sicherstellen, dass die Gruppe korrekt ist." exit 1 fi # Benutzer zur Sudo-Gruppe hinzufügen usermod -aG sudo $GRUPPE # Überprüfen, ob der SSH-Daemon installiert ist if ! dpkg -l | grep -q openssh-server; then echo "OpenSSH-Server ist nicht installiert. Installiere es jetzt..." apt update && apt install -y openssh-server fi # SSH-Zugriff für diese Gruppe aktivieren echo "SSH-Zugriff für Gruppe $GRUPPE erlauben..." echo "AllowGroups $GRUPPE" >> /etc/ssh/sshd_config # SSH-Dienst neu starten systemctl restart ssh # Root-Rechte der Gruppe zuweisen (sudo erlauben) echo "Root-Rechte für Gruppe $GRUPPE (über Sudo) zuweisen..." echo "%$GRUPPE ALL=(ALL:ALL) ALL" >> /etc/sudoers # Änderungen anwenden echo "Skript abgeschlossen. Bitte testen Sie die Änderungen." # Fortschritt speichern echo "3" > "$PROGRESS_FILE" fi # Schritt 3: Snap-Pakete installieren if [ "$STEP" -eq 3 ]; then # Liste der zu installierenden Snap-Pakete SNAP_PACKAGES=( "vlc" "spotify" "termius-app" "thunderbird" "remmina" "okular" "libreoffice" "gimp" "nextcloud-desktop-client" "gnucash-jz" "bitwarden" "whatsapp-linux-app" "notes" "chatgpt-desktop" ) # Snap-Pakete installieren for SNAP in "${SNAP_PACKAGES[@]}"; do echo "Installiere $SNAP..." snap install "$SNAP" --classic done # Snap-Verbindungen konfigurieren (z.B. Remmina) snap connect remmina:audio-record :audio-record snap connect remmina:avahi-observe :avahi-observe snap connect remmina:cups-control :cups-control snap connect remmina:mount-observe :mount-observe snap connect remmina:password-manager-service :password-manager-service snap connect remmina:ssh-keys :ssh-keys snap connect remmina:ssh-public-keys :ssh-public-keys # Fortschritt speichern echo "4" > "$PROGRESS_FILE" fi # Schritt 4: Repository hinzufügen und installieren if [ "$STEP" -eq 4 ]; then # URL der Paketquelle REPO_URL="deb http://www.ecodms.de/ecodms_240164/noble /" # Datei, in der die Quelle hinzugefügt wird SOURCES_LIST_FILE="/etc/apt/sources.list.d/ecodms.list" # Füge die Quelle hinzu echo "$REPO_URL" | tee "$SOURCES_LIST_FILE" > /dev/null # GPG-Schlüssel hinzufügen wget -qO /etc/apt/trusted.gpg.d/ecodms.asc http://www.ecodms.de/gpg/ecodms.key || { echo "Download des GPG-Schlüssels fehlgeschlagen"; exit 1; } # Paketquellen aktualisieren und Pakete installieren apt update apt upgrade -y apt-get install -y ecodmsclient apt-get install -y ecodmsprinter systemctl daemon-reload # Automatisch fehlende Abhängigkeiten installieren apt-get install -f -y # Unnötige Pakete entfernen apt-get autoremove -y # Fortschritt speichern echo "5" > "$PROGRESS_FILE" echo "Installation abgeschlossen!" fi # Schritt 5: Software installieren if [ "$STEP" -eq 5 ]; then mkdir /mnt/software echo "Passwort: Et48^nSGRh6644" sshfs root@192.168.176.6:/mnt/synology/software/ubuntu_client /mnt/software cp /mnt/software/* /home/sebastian/Downloads umount /mnt/software rmdir /mnt/software cd /home/sebastian/Downloads/ dpkg -i rustdesk-1.3.5-x86_64.deb apt-get install -f -y dpkg -i BricsCAD-V24.2.07-1-de_DE-amd64.deb apt-get install -f -y dpkg -i Installer_Fakturama_linux_x64_2.2.0-BETA.deb apt-get install -f -y dpkg -i shadow-amd64.deb apt-get install -f -y sudo dpkg -i nomachine_8.14.2_1_amd64.deb apt-get install -f -y sudo apt install wine dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386 # Unnötige Pakete entfernen apt-get autoremove -y mkdir -p /var/bricsys mkdir -p /var/tmp chmod -R 777 /var/bricsys chmod -R 777 /var/tmp # Fortschritt speichern echo "6" > "$PROGRESS_FILE" fi # Schritt 6: Wireguard client if [ "$STEP" -eq 6 ]; then cd /home/sebastian/Downloads/ wget https://github.com/UnnoTed/wireguird/releases/download/v1.0.0/wireguird_amd64.deb sudo dpkg -i ./wireguird_amd64.deb apt-get install -f -y # Fortschritt speichern echo "7" > "$PROGRESS_FILE" fi # Schritt 7: NFS if [ "$STEP" -eq 7 ]; then sudo apt install autofs -y echo "/net /etc/auto.net --timeout=600" | sudo tee -a /etc/auto.master systemctl restart autofs systemctl enable autofs ~/symlink_manager.sh # Fortschritt speichern echo "8" > "$PROGRESS_FILE" fi # Schritt 8: offene arbeiten if [ "$STEP" -eq 8 ]; then echo "- Drucuker installieren" echo "- Bricscad installieren mit dem lizenzserver.zell-cloud.de" echo "- Wireguard conf importieren" echo "- SQL Server konfigurieren für Fakturama" echo "- SQL Server konfigurieren für Gnu-Cash" # Fortschritt speichern echo "9" > "$PROGRESS_FILE" fi echo "Installation abgeschlossen!"