diff --git a/scripts/88-update-wrapper.sh b/scripts/88-update-wrapper.sh index ac72172..4a2b1f2 100644 --- a/scripts/88-update-wrapper.sh +++ b/scripts/88-update-wrapper.sh @@ -10,6 +10,7 @@ STATEDIR="/var/lib/mailwolt/update" SUDOERS="/etc/sudoers.d/mailwolt-update" VERSION_FILE="/var/lib/mailwolt/version" SUDOERS_SERVICES="/etc/sudoers.d/mailwolt-services" +SUDOERS_ARTISAN="/etc/sudoers.d/mailwolt-artisan" # Kandidaten: wo liegt update.sh? CANDIDATES=( @@ -157,5 +158,20 @@ if [[ ! -f "$VERSION_FILE" ]]; then chmod 0644 "$VERSION_FILE" fi +cat > "$SUDOERS_ARTISAN" <<'EOF' +# mailwolt darf artisan im App-Verzeichnis als www-data ausführen (ohne Passwort) +mailwolt ALL=(www-data) NOPASSWD: /usr/bin/php /var/www/mailwolt/artisan * +EOF + +chown root:root "$SUDOERS_ARTISAN" +chmod 440 "$SUDOERS_ARTISAN" + +if ! visudo -c -f "$SUDOERS_ARTISAN" >/dev/null 2>&1; then + echo "[!] Ungültiger sudoers-Eintrag in $SUDOERS_ARTISAN – entferne Datei." + rm -f "$SUDOERS_ARTISAN" +else + echo "[✓] Sudoers für Artisan-Kommandos angelegt: $SUDOERS_ARTISAN" +fi + log "[✓] Update-Wrapper bereit: $WRAPPER" log "[✓] Version wird unter $VERSION_FILE gespeichert" \ No newline at end of file