Raspberry: Python rechte geben?

3 Antworten

dein Script (ob Python oder bash oder tclsh oder ... ) darf nur der ausführen, der  auch das Recht dazu hat. Mit ls -l werden diese Rechte angezeigt.
Wenn das x für den Besitzer oder die Gruppe oder den "Rest der Welt" nicht gesetzt ist, dann geht es nicht.

ls -l würde vielleicht so aussehen:

-rwxr-x-rx   ---  Test.py

Da hier für den Besitzer rwx , die Gruppe r-x und World r-x  jeweils das x-Flag gesetzt ist, kann praktisch jeder Test.py laufen lassen.

Ob mit diesem Script auf var/www/html/logfile.txt zugegriffen werden darf, hängt dann von den Rechten dieser Datei ab.
Mit root als User, der Test.py gestartet hat, geht es immer.
Gleiches gilt für den Benutzer, der mit sudo auch root-Rechte hat. In dem Falle
kann dieser User das Script mit sudo Test.py  starten.

Was soll den Test.py   mit /var/www/html/logfile.txt  machen?

Nur lesen, dann setze die Rechte mit

chmod 744 /var/www/html/logfile.txt    so, dass jeder lesen darf.
Soll jeder auch lesen und schreiben, dann

chmod 766 /var/www/html/logfile.txt  

Bedenke aber, dass andere Programme aus Sicherheitsgründen das wieder umstellen können.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Welcher Nutzer soll den Dein Pythonscript ausführen? Davon hängt es doch maßgeblich ab, was zu tun ist.

Ich würde auf keinen Fall den Besitzer des Dokuments im HTTPd-Pfad ändern. Wobei ... hängt davon ab, wer www-data ist und mit welchen UID/GUID der HTTPd läuft.

Aber davon ab solltest Du Dir erstmal darüber klar werden, wie das insgesamt mit den Rechten abläuft.

Ich finde jedoch nichts funktionierendes im Internet.

Nicht verwunderlich - eine Datei kann gar keine Rechte haben. Rechte haben kann nur der Nutzer, der diese Datei möglicherweise (mit z.B. einem Python-Interpreter) öffnet.

Logdateien doch lieber in /var/log, oder? Aber egal.

Linux-Rechtesystem ist hier erklärt:

https://wiki.ubuntuusers.de/Rechte/