From c694769f4cbaa64038d9e7fcbd7a9de422ea2340 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 1 Sep 2025 08:23:10 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20=C3=9Cberpr=C3=BCfung=20der=20Root-?= =?UTF-8?q?Rechte=20hinzu=20und=20aktualisiere=20Berechtigungen=20im=20Skr?= =?UTF-8?q?ipt=20deploy-server.sh.=20Alle=20relevanten=20Operationen,=20di?= =?UTF-8?q?e=20erh=C3=B6hte=20Rechte=20ben=C3=B6tigen,=20werden=20nun=20mi?= =?UTF-8?q?t=20sudo=20ausgef=C3=BChrt,=20um=20die=20Sicherheit=20und=20Fun?= =?UTF-8?q?ktionalit=C3=A4t=20zu=20verbessern.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy-server.sh | 55 +++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/deploy-server.sh b/deploy-server.sh index 92bf080..7e1387d 100755 --- a/deploy-server.sh +++ b/deploy-server.sh @@ -46,6 +46,13 @@ fi log_info "Starte Server-Side Deployment für YourPart Daemon..." # 1. Prüfe Dependencies +# Prüfe ob wir root-Rechte haben für bestimmte Operationen +check_sudo() { + if ! sudo -n true 2>/dev/null; then + log_info "Einige Operationen benötigen sudo-Rechte..." + fi +} + log_info "Prüfe Dependencies..." if ! command -v cmake &> /dev/null; then log_error "CMake nicht gefunden. Führen Sie zuerst install-dependencies-ubuntu22.sh aus!" @@ -90,7 +97,7 @@ log_success "Build abgeschlossen" log_info "Prüfe Benutzer $DAEMON_USER..." if ! id "$DAEMON_USER" &>/dev/null; then log_info "Erstelle Benutzer $DAEMON_USER..." - useradd --system --shell /bin/false --home-dir "$REMOTE_DIR" --create-home "$DAEMON_USER" + sudo useradd --system --shell /bin/false --home-dir "$REMOTE_DIR" --create-home "$DAEMON_USER" log_success "Benutzer $DAEMON_USER erstellt" else log_info "Benutzer $DAEMON_USER existiert bereits" @@ -99,48 +106,48 @@ fi # 4. Erstelle Verzeichnisse log_info "Erstelle Verzeichnisse..." mkdir -p "$REMOTE_DIR"/{logs,config} -mkdir -p /etc/yourpart -mkdir -p /var/log/yourpart +sudo mkdir -p /etc/yourpart +sudo mkdir -p /var/log/yourpart # 5. Kopiere Dateien log_info "Kopiere Dateien..." -cp "$BUILD_DIR/yourpart-daemon" /usr/local/bin/ -cp daemon.conf /etc/yourpart/ -cp yourpart-daemon.service /etc/systemd/system/ +sudo cp "$BUILD_DIR/yourpart-daemon" /usr/local/bin/ +sudo cp daemon.conf /etc/yourpart/ +sudo cp yourpart-daemon.service /etc/systemd/system/ # 6. Setze Berechtigungen log_info "Setze Berechtigungen..." -chmod +x /usr/local/bin/yourpart-daemon -chown -R "$DAEMON_USER:$DAEMON_USER" "$REMOTE_DIR" -chown -R "$DAEMON_USER:$DAEMON_USER" /var/log/yourpart -chmod 600 /etc/yourpart/daemon.conf +sudo chmod +x /usr/local/bin/yourpart-daemon +sudo chown -R "$DAEMON_USER:$DAEMON_USER" "$REMOTE_DIR" +sudo chown -R "$DAEMON_USER:$DAEMON_USER" /var/log/yourpart +sudo chmod 600 /etc/yourpart/daemon.conf # 7. Lade systemd neu log_info "Lade systemd Konfiguration neu..." -systemctl daemon-reload +sudo systemctl daemon-reload # 8. Aktiviere Service log_info "Aktiviere Service..." -systemctl enable "$SERVICE_NAME" +sudo systemctl enable "$SERVICE_NAME" # 9. Starte Service log_info "Starte Service..." -if systemctl is-active --quiet "$SERVICE_NAME"; then +if sudo systemctl is-active --quiet "$SERVICE_NAME"; then log_info "Service läuft bereits, starte neu..." - systemctl restart "$SERVICE_NAME" + sudo systemctl restart "$SERVICE_NAME" else - systemctl start "$SERVICE_NAME" + sudo systemctl start "$SERVICE_NAME" fi # 10. Prüfe Status log_info "Prüfe Service-Status..." sleep 2 -if systemctl is-active --quiet "$SERVICE_NAME"; then +if sudo systemctl is-active --quiet "$SERVICE_NAME"; then log_success "Service läuft erfolgreich!" - systemctl status "$SERVICE_NAME" --no-pager + sudo systemctl status "$SERVICE_NAME" --no-pager else log_error "Service konnte nicht gestartet werden!" - log_info "Logs anzeigen mit: journalctl -u $SERVICE_NAME -f" + log_info "Logs anzeigen mit: sudo journalctl -u $SERVICE_NAME -f" exit 1 fi @@ -148,12 +155,12 @@ fi log_success "Deployment erfolgreich abgeschlossen!" log_info "" log_info "Nützliche Befehle:" -log_info "- Service-Status: systemctl status $SERVICE_NAME" -log_info "- Service stoppen: systemctl stop $SERVICE_NAME" -log_info "- Service starten: systemctl start $SERVICE_NAME" -log_info "- Service neustarten: systemctl restart $SERVICE_NAME" -log_info "- Logs anzeigen: journalctl -u $SERVICE_NAME -f" -log_info "- Logs der letzten 100 Zeilen: journalctl -u $SERVICE_NAME -n 100" +log_info "- Service-Status: sudo systemctl status $SERVICE_NAME" +log_info "- Service stoppen: sudo systemctl stop $SERVICE_NAME" +log_info "- Service starten: sudo systemctl start $SERVICE_NAME" +log_info "- Service neustarten: sudo systemctl restart $SERVICE_NAME" +log_info "- Logs anzeigen: sudo journalctl -u $SERVICE_NAME -f" +log_info "- Logs der letzten 100 Zeilen: sudo journalctl -u $SERVICE_NAME -n 100" log_info "" log_info "Konfigurationsdatei: /etc/yourpart/daemon.conf" log_info "Log-Verzeichnis: /var/log/yourpart/"