Raspian: fhem-Systembefehle - Permission denied

Begonnen von heikoh81, 11 Juli 2016, 21:19:38

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

ich möchte mittels cat eine Apache2-Conf dynamisch erzeugen, um über ReverseProxy-Einträge in einem VirtualHost gezielt IPCams zu aktivieren oder deaktivieren.
Hierzu baue ich mittels cat aus verschiedenen Text-Schnipseln in der richtigen Reihenfolge eine .conf-Datei zusammen.

sudo visudo:

pi ALL=(ALL) NOPASSWD: ALL
fhem ALL=(ALL) NOPASSWD: ALL

fhem braucht bei mir root-Rechte, weil ich mit pilight über die GPIOs auf 433 Mhz sende (nicht mit dem fhem-modul, sondern direkt über den system-Befehl).

/etc/group (Auszug):

root:x:0:
pi:x:1000:


Vereinfacht führt fhem folgenden System-Befehl aus & startet Apache neu:

sudo cat /home/pi/Apache/text1.txt /home/pi/Apache/text2.txt > /etc/apache2/sites-available/fertige_site.conf


Wenn nun /etc/apache2/sites-available folgende Rechte hat, bekomme ich im FHEM-Log den Fehler "Permission denied".

User: root Group: root 0755

Es funktioniert, wenn ich der Gruppe root und Anyone Schreibrechte einräume.
Gruppe allein reicht nicht, immer noch permission denied.

User: root Group: root 0777


Wie könnte ich FHEM dazu bewegen, dass die .conf-Datei in /etc/apache2/sites-available geschrieben werden kann, ohne dass ich für diesen Pfad Schreibrechte für "Anyone" einräumen muss.

Vielen Dank für eure Antworten,
viele Grüße,

Heiko

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

heikoh81

Steht dem Befehl cat voran, siehe Beispiel.
Habe schon alles mögliche probiert, z.B. "sudo su -u root cat...", aber das produziert alles nur Fehlermeldungen.

CoolTux

ok mal was anderes. so weit ich mich entsinnen kann ist doch sites-available keine Datei, sondern ein Verzeichnis. Oder ist das bei dir anders. mach mal bitte ein ls -all und poste mal bitte die komplette ausgabe
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

heikoh81

Zitat von: CoolTux am 11 Juli 2016, 21:30:00
ok mal was anderes. so weit ich mich entsinnen kann ist doch sites-available keine Datei, sondern ein Verzeichnis. Oder ist das bei dir anders. mach mal bitte ein ls -all und poste mal bitte die komplette ausgabe

Das war mein Fehler, soll natürlich heißen:

... > /etc/apache2/sites-available/fertige_site.conf

Habe es in meinem 1. Post korrigiert.

CoolTux


fhem       ALL = NOPASSWD: /etc/apache2/sites-available/fertige_site.conf


Probiere mal bitte so. und schaue das alle Verzeichnisse in der Baumstrukture 755 haben. Also /etc dann /etc/apache2/ dann und so weiter
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

heikoh81

#6
Ok, das probiere ich.
Ok, so funktioniert es, habe einfach die Zeile in visudo angefügt.
Die Pfade waren schon durchgängig 0755.

Muss ich nach Änderungen in visudo den Raspi neu starten?
Update: Hat ohne reboot direkt funktioniert

Wie wäre die Syntax, wenn ich mehrere Dateien so in visudo einfügen will?


Viele Grüße,
Heiko

CoolTux

Mit Komma getrennt einfach hinten dran. Sie wie beim ersten mit ganzem Pfad.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net