FHEM Forum

FHEM - Hardware => Server - Linux => Thema gestartet von: Motivierte linke Hände am 14 Januar 2015, 23:19:18

Titel: debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 14 Januar 2015, 23:19:18
Ich habe gerade FHEM (5.6, glaube ich) aus dem Stable-Repository auf einem neu aufgesetzten Ubuntu 14.04 installiert. Nach der Installation schlug der Start über

/etc/init.d/fhem start

fehl mit einer Fehlermeldung, die mit

ZitatCan't open ./log/[...]

begann. Ein wenig Suche auf dem System und bei Google hat ergeben, dass bei der Installation aus dem Repository die Rechte falsch gesetzt werden. In /opt/fhem/log/ waren die Dateien fhem-2015-01.log, fhem-2015-01.logattr und fhem.save Benutzer "fhem", Gruppe "dialout" zugeordnet. Ein Vergleich mit den anderen Dateien ließ mich vermuten, dass die Gruppe nicht "dialout", sondern "root" sein sollte.

cd /opt/fhem/log
chown fhem:root *


Hat das Problem gelöst. Da es sich um ein neues System handelte, ist der Hinweis oben vielleicht hilfreich, um den Installer anzupassen (keine Ahnung, wie sowas geht...) Und wenn nicht, hilft es vielleicht nachfolgenden Generationen von Nutzern, die beim Googlen auf diesen Beitrag stoßen.  :)
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: betateilchen am 15 Januar 2015, 12:57:29
Bei der Installation aus dem Repository werden die Rechte für das gesamte Verzeichnis /opt/fhem und alle darin enthaltenen Unterverzeichnisse gesetzt:

chown -R fhem:root /opt/fhem

Da fhem die Logdateien selbst anlegt, hat fhem auch die Rechte, jederzeit in die Datei schreiben zu dürfen.

Solche Fehler wie von Dir beschrieben, treten meistens dann auf, wenn man als root irgendwelche Änderungen innerhalb des fhem-Verzeichnisses ausführt und vergisst, danach die Rechte richtig zu setzen.

Und Ubuntu verhält sich in manchen Sachen ohnehin "komisch".
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 16 Januar 2015, 13:21:49
Ich hatte gerade das Problem, dass hier einige Logfiles nicht mehr geschrieben wurden. Die Suche hat ergeben, dass schon wieder die Rechte nicht stimmten.

root@fhem:/opt/fhem/log# ls -l
insgesamt 76
-rw-r--r-- 1 fhem root        0 Nov  9 14:16 empty_file.txt
-rw-r--r-- 1 fhem dialout     0 Jan 15 00:33 eventTypes.txt
-rw-r--r-- 1 fhem dialout 12599 Jan 15 20:36 Fenster_UG_Buero-2015.log
-rw-r--r-- 1 fhem root    14085 Jan 16 12:56 fhem-2015-01.log
-rw-r--r-- 1 fhem root       42 Jan 14 22:50 fhem-2015-01.logattr
-rw-r--r-- 1 fhem root    21079 Jan 15 23:38 fhem.save
-rw-r--r-- 1 fhem dialout  7129 Jan 15 20:48 Heizung_UG_Buero-2015.log
-rw-r--r-- 1 fhem dialout  5772 Jan 15 20:48 Heizung_UG_Gast-2015.log


Ungefähr zu dieser Zeit hatte ich im Webinterface die Geräte umbenannt, für die die Logfiles mit falschen Rechten (dialout statt root) da rumliegen. Es scheint, dass Dateien, die FHEM selbst anlegt, die falschen Rechte erhalten, quasi verlässlich und reproduzierbar.

Kann ich da irgendwo dran drehen? Perl kann ich gaaanich.

Das Problem selbst ließ sich natürlich über ein

chown fhem:root *

wieder lösen. Würde das nur ungern hier als Cronjob einrichten.  ;D

Edith sagt: Das Verhalten ist in der Tat reproduzierbar. Es kommt aber nicht vom rename, sondern vom neuen Gerät. Gerade einen neuen Fenstersensor angelernt:

root@fhem:/opt/fhem/log# ls -l
insgesamt 80
-rw-r--r-- 1 fhem dialout  2401 Jan 16 13:58 CUL_HM_HM_SEC_SCo_35C07D-2015.log
-rw-r--r-- 1 fhem root        0 Nov  9 14:16 empty_file.txt
-rw-r--r-- 1 fhem root        0 Jan 15 00:33 eventTypes.txt
-rw-r--r-- 1 fhem root    12599 Jan 15 20:36 Fenster_UG_Buero-2015.log
-rw-r--r-- 1 fhem root    15950 Jan 16 13:58 fhem-2015-01.log
-rw-r--r-- 1 fhem root       42 Jan 14 22:50 fhem-2015-01.logattr
-rw-r--r-- 1 fhem root    21127 Jan 16 13:56 fhem.save
-rw-r--r-- 1 fhem root     7129 Jan 15 20:48 Heizung_UG_Buero-2015.log
-rw-r--r-- 1 fhem root     5772 Jan 15 20:48 Heizung_UG_Gast-2015.log


Beim rename hat das Logfile die richtigen Rechte behalten.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Wernieman am 20 Januar 2015, 14:22:26
Mit welchen Rechten läuft denn fhem bei Dir?

ps aux | grep fhem
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: betateilchen am 20 Januar 2015, 14:42:32
Die Inkonsistenz rührt daher, dass im .deb package das fhem-Verzeichnis nach der Installation auf fhem:dialout gesetzt wird, der im gleichen Skript angelegte fhem-User aber mit fhem:dialout generiert wird. Deshalb werden neu angelegte Dateien mit fhem:dialout angelegt.

Was ich aber nicht verstehe:

Solange fhem unter dem User fhem läuft, sollte das überhaupt keine Rolle spielen, da der Eigentümer ja in beiden Fällen "fhem" ist.

Im Installationsskript habe ich eben die Änderung eingebaut, dass nach der Installation wieder auf fhem:dialout geschrieben wird.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Wernieman am 20 Januar 2015, 16:23:45
Wenn der User mit Gruppe dialout läuft, dann sollte ein chown doch keine Änderung im Verhalten bringen?

Gib uns doch bitte mal die Ausgaben von:
ps aux | grep fhem
grep fhem /etc/passwd
grep fhem /etc/group

Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 20 Januar 2015, 20:17:07
# ps aux | grep fhem
fhem     26506  0.0  3.9 114452 40284 pts/1    S    09:32   0:18 perl fhem.pl fhem.cfg


# grep fhem /etc/passwd
fhem:x:999:20::/opt/fhem:/bin/false


In /etc/group taucht fhem nicht auf, deswegen zeigt der entsprechende grep nichts. Group 20 ist dialout.
# grep dialout /etc/group
dialout:x:20:


Interessant auch:
/opt/fhem/log# ls -l
[...]
-rw-r--r-- 1 root root  22708 Jan 18 16:40 eventTypes.txt


Die Datei gehört root:root und wird seit 2 Tagen nicht mehr geschrieben (vmtl. deswegen, aber ohne sichtbare Fehlermeldung im Log). Alles andere gehört fhem:root. chown habe ich nur im log-Verzeichnis gemacht.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Wernieman am 21 Januar 2015, 13:39:00
Und genau dort dürfte der Fehler liegen. Du hast chown mit "-R" gemacht und damit den Zugriff fhem komplett gegeben. Die Änderung dialout zu root dürfte nicht der Grund für funktionieren sein.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 21 Januar 2015, 13:48:01
Das war keine Antwort an mich, oder? Meine chowns waren immer nur im log-Verzeichnis und nicht mit -R.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Wernieman am 21 Januar 2015, 13:52:55
..... nur wundere ich mich gerade, warum auf Deinem System die von fhem geschriebene Log-Datei mit root-Rechten angelegt wird ....

Da das System ansonsten gut aussieht, kann ich Dir nicht weiterhelfen. Sorry
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 21 Januar 2015, 15:19:09
Oki, danke. Ich werde demnächst ein paar neue Geräte mit aufnehmen und dann mal schauen, was passiert.
Titel: Antw:debian Installation vom Repository unter Ubuntu -> Fehler beim Start von FHEM
Beitrag von: Motivierte linke Hände am 03 Februar 2015, 18:14:18
Also, beim Anlernen neuer Geräte werden Logfiles nach dem Umbenennen der Geräte nicht mehr beschrieben, bis fhem neu gestartet wird. Mit den Dateirechten hat das offenbar gar nichts zu tun... Jedenfalls nicht offensichtlich. ???

Dafür habe ich gerade was anderes Interessantes gefunden:

2015-02-03 17:49:43 Global global open ./www/images/default/remotecontrol/black_btn_SHUFFLE.png failed: Keine Berechtigung, trying to restore the previous version and aborting the update

"Keine Berechtigung" klingt nach einem Rechte-Problem bei irgendeinem shell Aufruf. Als ich das erste Mal nachsah, existierte die Datei nicht. Da habe ich sie angelegt und ihr den owner fhem:root verpasst, den hier alle anderen Dateien nach der Installation ebenfalls hatten. Das ändert aber nichts, der Fehler bleibt...

Die von mir neu angelegte Datei mit fhem:root kann ich als User fhem wieder löschen und dann auch als user fhem wieder neu anlegen...

Kann es sein, dass irgendwas mit anderen Berechtigungen als denen von fhem ausgeführt wird? Ich versteh's nicht.