OctoPrint – Zugriff auf Systemfunktionen

OctoPrint läuft ja in den meisten Fällen unter einem normalen Nutzeraccount mit eingeschränkten Rechten. Dies bedeutet, dass wichtige Systemfunktionen wie das Herunterfahren oder Neustarten des Systems eigentlich nicht möglich sind.

Damit das funktioniert, müssen lediglich im System die relevanten Systembefehle für OctoPrint freigegeben werden.
Dies geschieht über entsprechende Einträge in der Sudo-Konfigurationsdatei /etc/sudoers bzw besser in einer eigenen, separaten Datei für OctoPrint: /etc/sudoers.d/octoprint
Dazu wird die Datei mittels sudo visudo -f /etc/sudoers.d/octoprint erstellt und die entsprechenden Befehle dort eingefügt.

octoprint ALL=NOPASSWD:/usr/bin/systemctl poweroff,/usr/bin/systemctl reboot,/usr/bin/systemctl restart octoprint,/sbin/ip

Der erste Eintrag octoprint gibt den Nutzernamen an, unter dessen Accout OctoPrint läuft. In meinem Fall eben der User „octoprint“.
Die nächsten Einträge ALL=NOPASSWD: bedeuten, dass der entprechende User alle folgenden Befehle ohne besondere Restriktionen und ohne Passwort ausführen darf.
Die drei systemctl-Befehle sind für das OctoPrint-Systemmenü, der letzte Befehl /sbin/ip für das „Network Health“-plugin.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert