[ERLEDIGT] Nur bestimmten Befehl in sudoers einfügen

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

[ERLEDIGT] Nur bestimmten Befehl in sudoers einfügen

Beitrag von Richard » 26.10.2023 11:33:13

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?
Zuletzt geändert von Richard am 26.10.2023 12:47:58, insgesamt 1-mal geändert.

chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

Re: Nur bestimmten Befehl in sudoers einfügen

Beitrag von chrbr » 26.10.2023 11:36:58

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.

Benutzeravatar
kalle123
Beiträge: 2714
Registriert: 28.03.2015 12:27:47
Wohnort: Mönchengladbach

Re: Nur bestimmten Befehl in sudoers einfügen

Beitrag von kalle123 » 26.10.2023 11:49:04

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

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Nur bestimmten Befehl in sudoers einfügen

Beitrag von Richard » 26.10.2023 12:47:32

Hab es mit sudo crontab -e versucht und geht. Hatte ich nicht auf dem Schirm, dass das auch für sudo geht.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: Nur bestimmten Befehl in sudoers einfügen

Beitrag von tobo » 26.10.2023 13:07:25

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?

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

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

Beitrag von Richard » 26.10.2023 13:17:55

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.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

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

Beitrag von tobo » 26.10.2023 13:25:18

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.

Antworten