Seite 1 von 1

[ERLEDIGT] Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 11:33:13
von Richard
Hallo,

ich habe hier einen Raspberry Pi mit Raspbian 12. darauf läuft ein MiniDLNA-Server (ReadyMedia). An meinem Fernseher passiert es oft, dass Dateien noch angezeigt werden wenn die schon lange vom Server gelöscht wurden (manchmal werden sie auch doppelt angezeigt). Das Webinterface des Server zeigt die korrekte Anzahl an, andere UPnP-Clients haben diese Probleme nicht (außer mein altes Tablet mit VLC auf Android 10). Ich vermute dager ein Client- und kein Server-Problem. Clientseitig kann ich da aber nichts machen. Der TV ist von 2017 und erhält keine Updates mehr, auch für das Tablet gibt es nichts. Was hilft ist ein kompletter Restart von Minidlna mittels

Code: Alles auswählen

sudo systemctl restart minidlna.service
Ich bin am überlegen ob ich einfach per Cron einmalig früh um 4 (wenn eh keiner auf den Server zugreift) den Server neu starte. Der Befehl braucht aber ein sudo-Passwort. Ich könnte 'systemctl' in die sudoers einfügen, dass können aber ALLE Systemd-Units gestoppt oder neu gestartet werden. Es geht aber auch nicht, wenn man den oben genannten Befehl in die sudoers einfügt - das wird scheinbar nicht unterstützt.

Mir fällt spontan nur ein die Zeile in ein Script zu packen, das in einen Ordner zu kopieren wo es nur mit Passwort geändert werden kann und dann das Script in die sudoers einzufügen. Oder geht das auch anders? Kann man schon in der Systemd-Unit einstellen, dass man die Unit ohne Passwort starten kann?

Re: Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 11:36:58
von chrbr
Richard hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 11:33:13
Ich bin am überlegen ob ich einfach per Cron einmalig früh um 4 (wenn eh keiner auf den Server zugreift) den Server neu starte. Der Befehl braucht aber ein sudo-Passwort.
Eigentlich sollte man auch für root eine crontab erstellen können. Dann braucht man sudo nicht.

Re: Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 11:49:04
von kalle123
Ich schränke das hier auf meinem Desktoprechner in visudo ein

Code: Alles auswählen

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) /usr/sbin/gparted, 
und hinter '/usr/sbin/gparted' dann die nächsten freizugebenden Befehle ..

Weiss nicht, ob das eine Alternative sein könnte ...

Gruß KH

Re: Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 12:47:32
von Richard
Hab es mit sudo crontab -e versucht und geht. Hatte ich nicht auf dem Schirm, dass das auch für sudo geht.

Re: Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 13:07:25
von tobo
Richard hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 11:33:13
Was hilft ist ein kompletter Restart von Minidlna mittels

Code: Alles auswählen

sudo systemctl restart minidlna.service
Ich bin am überlegen ob ich einfach per Cron einmalig früh um 4 (wenn eh keiner auf den Server zugreift) den Server neu starte. Der Befehl braucht aber ein sudo-Passwort. Ich könnte 'systemctl' in die sudoers einfügen, dass können aber ALLE Systemd-Units gestoppt oder neu gestartet werden. Es geht aber auch nicht, wenn man den oben genannten Befehl in die sudoers einfügt - das wird scheinbar nicht unterstützt.
Ohne voranstehendem sudo und mit qualifizierter Pfadangabe (Benutzer der Gruppe sudo und ohne Passwort-Eingabe):

Code: Alles auswählen

%sudo ALL=(root) NOPASSWD: /usr/bin/systemctl restart minidlna.service
oder wie schon von chrbr geschrieben, den Befehl direkt in der Crontab von Root oder des Systems (mit User root) aufrufen.

Hat dir visudo eigentlich keinen Fehler beim Beenden angezeigt?

EDIT: Zeig' mal deine /etc/sudoers! Editierst du die überhaupt mit visudo?

Re: [ERLEDIGT] Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 13:17:55
von Richard
Ich hab das hier nicht getestet, hab aber aus früheren versuchen noch in Erinnerung, dass man keine komplexeren befehle in sudoers einfügen kann. Ob da beim beenden ein Fehler kam weiss ich nicht mehr. Ich denke über cron ist das eh die bessere Lösung.

Re: [ERLEDIGT] Nur bestimmten Befehl in sudoers einfügen

Verfasst: 26.10.2023 13:25:18
von tobo
Klar ist cron über root hier besser, darauf wollte ich auch nicht hinaus. Du hast aber die crontab über sudo geöffnet, also hast du in /etc/sudoers ja schon eine gültige Regel drinstehen...

PS: Komplexe Befehle, also mit Optionen und Parametern? Das geht schon in der /etc/sudoers, das geht sogar verschachtelt mit Aliasen.