Füge Überprüfung der Root-Rechte hinzu und aktualisiere Berechtigungen im Skript deploy-server.sh. Alle relevanten Operationen, die erhöhte Rechte benötigen, werden nun mit sudo ausgeführt, um die Sicherheit und Funktionalität zu verbessern.

This commit is contained in:
Torsten Schulz (local)
2025-09-01 08:23:10 +02:00
committed by Torsten (PC)
parent 8b9ff9793c
commit c694769f4c

View File

@@ -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/"