256 lines
6.8 KiB
Bash
256 lines
6.8 KiB
Bash
#!/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<ep -q software-properties-common; then
|
|
apt-get install -y software-properties-common
|
|
fi
|
|
|
|
# Die Datei, in der der Fortschritt gespeichert wird
|
|
PROGRESS_FILE="/var/script_progress.txt"
|
|
|
|
|
|
# Prüfen, ob eine Fortschrittsdatei existiert
|
|
if [ -f "$PROGRESS_FILE" ]; then
|
|
# Wenn die Datei existiert, lesen wir den Fortschritt
|
|
STEP=$(cat "$PROGRESS_FILE")
|
|
else
|
|
touch "@PROGRESS_FILE"
|
|
echo "Die Datei '$FILENAME' wurde erstellt."
|
|
echo "1" > "$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!"
|
|
|
|
|
|
|