Zugriffsrechte nach restore eines FHEM-Backups

Begonnen von MarcelT, 11 Dezember 2015, 21:50:08

Vorheriges Thema - Nächstes Thema

MarcelT

Guten Abend,

vorab: Ich habe heute mit einer komplett jungfräulichen Wheezy-Installation neu angefangen.

FHEM war also erst einmal "nackig" und verbogen war auch nix. Im Anschluss habe ich ein existierendes Backup, das ich über den backup-Befehl mit meiner alten Installation erzeugt hatte, wieder vom NAS zurück in den Standard-Backup-Ordner kopiert und wollte dann aus FHEM heraus das Kommando "restore" benutzen. Hat leider nur teilweise funktioniert, er war unglaublich schnell fertig und hat ein paar Dateien extrahiert aber weit nicht alles. Warum weiß ich nicht - aber vielleicht habe ich den gewünschten Funktionsumfang von restore auch missverstanden. Also habe ich es manuell entpackt.

So, nun das Problem: Wenn ich service fhem start eingebe dann wird das quittiert mit der Meldung Starting fhem...
Can't open ./log/fhem-2015-12.log: Permission denied at fhem.pl line 2311
und FHEM wird nicht gestartet.

starte ich FHEM mit sudo, dann gehts. Es muss also an den Zugriffsrechten des Benutzers "fhem" liegen, korrekt? Wie sehe ich eigentlich, ob fhem mit Benutzer "fhem" gestartet wird?

Sehe ich mir die Dateirechte mit ls -la /opt/fhem/log an, so fällt mir nicht auf warum es nicht gehen soll. Aber ich bin auch absoluter Linux-Laie und übersehe vielleicht die einfachsten Dinge. Die Ausgabe habe ich gekürzt um die Dateien, deren Berechtigungen und Art gleich waren.

drwxrwxrwx  2 fhem root      4096 Dec 10 09:17 .
drwxrwxrwx 11 fhem dialout   4096 Dec 11 21:15 ..
-rw-r--r--  1 fhem dialout     65 Jun 21 01:44 EIB_009c-2015.log
-rw-rw-rw-  1 fhem root       130 Mar 22  2015 EIB_4100-2015.log
-rw-r--r--  1 fhem dialout  23991 Dec  3 18:10 EnoceanTasterRolladenEG-2015.log
-rw-rw-rw-  1 fhem root      1120 Dec 11 21:32 eventTypes.txt
-rw-r--r--  1 fhem dialout 287681 Dec 11 21:36 fhem-2015-12.log
-rw-rw-rw-  1 fhem root      8288 Dec 11 21:32 fhem.save


ls -la auf das Verzeichnis "log" ergibt drwxrwxrwx  2 fhem root      4096 Dec 10 09:17 log

Kann mich jemand aufklären?

Danke,
Marcel

viegener

Normalerweise wechselt FHEM beim Start selbst zum Benutzer fhem, also würde er Zugriff haben. Ich vermute dann wohl, dass er nicht unter fhem läuft.

Gibt es den Benutzer in der Datei /etc/passwd?

Du kannst mit dem Befehl
ps u oder ps au Informationen über laufende Prozesse erhalten, auch unter welchem Benutzer diese laufen.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MarcelT

Ja, den Benutzer gibt es: fhem:x:999:20::/opt/fhem:/bin/false


Wenn ich FHEM mit sudo service fhem starte, dann zeigt mir ps u auch an dass es unter Benutzer fhem läuft.

Wenn ich den raspberry neu starte, läuft auch FHEM und funktioniert. ps au zeigt mir den perl-Prozess aber gar nicht erst an. Normales Stoppen aus der Konsole ohne sudo nicht möglich, Operation not permitted. Neustart von FHEM durch shutdown restart funktioniert ebenfalls.

Mache ich
ps ax | grep fhem dann ist die Ausgabe
2242 ?        S      0:10 perl fhem.pl fhem.cfg
2390 pts/0    S+     0:00 grep --color=auto fhem


Beende ich FHEM dann mit Hilfe von sudo und starte neu "nur" mit service fhem start, so ist das Problem mit den Zugriffsrechten wieder da.

MarcelT

#3
so, bin ein wenig weiter. Wenn ich das logfile lösche und danach FHEM starte mit service fhem start so läuft FHEM unter Benutzer pi. Der wiederum hat ja keinen Schreibzugriff auf die Logdatei. Das scheint der Kern des Problems zu sein.

Ein unter Benutzer pi gelaufenes FHEM erzeigt wiederum eine Logdatei, die der Benutzer "fhem" nicht lesen kann. Starte ich also FHEM noch einmal neu mit "sudo service fhem start", so bekomme ich jetzt die gleiche Fehlermeldung wie vorher. Ich werde also die Berechtigungen auf die Logdateien händisch anpassen müssen. Vielleicht hatte ich sie aus Versehen in meiner alten Installation so begrenzt, dass nur der Benutzer Schreibzugriff hat; und wenn ich das Backup zurückspiele werden natürlich auch die alten Berechtigungen wieder gesetzt.

Würde mich mal interessieren wie die Berechtigungen der Logdateien bei euch sind, die ihr die nicht verändert habt.

Viele Grüße
Marcel

viegener

Zitat von: MarcelT am 11 Dezember 2015, 23:22:38
Ein unter Benutzer pi gelaufenes FHEM erzeigt wiederum eine Logdatei, die der Benutzer "fhem" nicht lesen kann. Starte ich also FHEM noch einmal neu mit "sudo service fhem start", so bekomme ich jetzt die gleiche Fehlermeldung wie vorher. Ich werde also die Berechtigungen auf die Logdateien händisch anpassen müssen. Vielleicht hatte ich sie aus Versehen in meiner alten Installation so begrenzt, dass nur der Benutzer Schreibzugriff hat; und wenn ich das Backup zurückspiele werden natürlich auch die alten Berechtigungen wieder gesetzt.

Würde mich mal interessieren wie die Berechtigungen der Logdateien bei euch sind, die ihr die nicht verändert habt.

Viele Grüße
Marcel
Ich denke Du hast die Ursache gefunden. Die Analyse danach ergibt aus meiner Sicht aber keinen Sinn. Also fhem sollte unter Benutzer fhem laufen und dann passen auch die Berechtigungen. 

Damit das passiert muss der Start des fhem service mit root-Rechten erfolgen. Wenn man also nicht als root angemeldet ist, so muss der Start über:
sudo service fhem start
erfolgen. Nur dann kann fhem auch beim Start zum Benutzer fhem wechseln (setuid).

Die Berechtigungen meiner log-files sind ähnlich wie zum Teil auch bei Dir:
-rw-r--r--  1 fhem dialout  3353364 Jul 31 23:59 fhem-2015-07.log

Also eigentlich ist der Fehler, dass Du versuchst den fhem service ohne sudo aus dem Benutzer pi zu starten. Dadurch kommen Teile durcheinander und dann müssen auch Berechtigungen korrigiert werden.



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MarcelT

Zitat von: viegener am 12 Dezember 2015, 01:13:45
Also eigentlich ist der Fehler, dass Du versuchst den fhem service ohne sudo aus dem Benutzer pi zu starten. Dadurch kommen Teile durcheinander und dann müssen auch Berechtigungen korrigiert werden.
Danke für deine schnellen Antworten! Also ich schließe das Thema damit mal. Mit jetzigem Hintergrundwissen muss ich dir voll zustimmen.