Hilfe! Mein FHEM funktioniert nicht!: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 49: Zeile 49:


=== root-Berechtigung erlangen ===
=== root-Berechtigung erlangen ===
Nicht alle Befehle unter Linux sind für '''normale''' Benutzer (wie Anwender oder der pi-Benutzer) zugänglich oder können aufgerufen werden. Systemnahe Befehle, d.h. Befehle, die in die Grundfunktionen des Betriebssystemes konfigurieren oder umstellen, sind nur für den Nutzer '''root''' zugänglich.
root-Rechte erlangt man mit den Befehlen
  sudo -i
oder
  su -
je nach verwendeter Linux-Distribution.
'''Doch Vorsicht''': Linux geht davon aus, daß der Anwender root sehr genau weiß, was er tut. Befehle werden ohne weitere Sicherheitsabfragen ausgeführt - auch die Formatierung der Speicherkarte, externer Laufwerke oder die Löschung aller Dateien. Es ist sehr einfach, durch ein Leerzeichen zuviel oder eines zu wenig einen großen Datenverlust zu erzeugen.
Aus diesem Grund wird dringend empfohlen, die ersten Analyseschritte nur als normaler Anwender (z.B. pi) zu erledigen und wenn der Fehler gefunden wurde, die Behebung mit '''sudo''' vorzunehmen. sudo verleiht nur temporär root-Rechte und erfordert für jedes Kommando die explizite Angabe von sudo.
Ein Beispiel: ein normaler User kann
  rm -rf /usr/*
nicht aufrufen. Dieser Befehl löscht alle Dateien im /usr-Verzeichnis, dort liegen die existenziell notwendigen Befehle für Linux. Nach Aufruf dieses Befehls ist die Linuxinstallation unwiderruflich defekt.
Der Nutzer root kann denselben Befehl ohne Sicherheitsabfrage aufrufen.
Der Nutzer pi kann den Befehl mit temporären root-Rechten
  sudo rm -rf /usr/*
aufrufen und benötigt für den Aufruf sein Paßwort.


== Kontrolle der laufenden Prozesse ==
== Kontrolle der laufenden Prozesse ==

Version vom 29. April 2016, 10:31 Uhr

Diese Seite gibt beschreibt die Vorgehensweise bei der Fehlersuche mit fhem auf der Basis von Linux.

Anmelden am fhem-Server

In dieser Hilfeseite läuft fhem auf einem Linux-System, z.B. ein Raspberry Pi, ein ODROID oder ein Beaglebone. Auf diesem Computer läuft eine Variante von Linux für Einplatinencomputer.

Das Linux als Betriebssystem stellt meist einen ssh-Server (ein verschlüsselter Zugang zum System auf der Kommandozeilenebene von einem zweiten Rechner aus) und/oder eine Console (die Anmeldung erfolgt lokal am angeschlossenen Bildschirm und Tastatur) zur Verfügung.

Anmeldung via ssh (OS X/Linux)

Auf einem Mac- oder Linux-Computer wird ein Terminal gestartet (xterm, Terminal) und dort mittels ssh eine Verbindung zum fhem-Server aufgenommen:

 ssh <IP-Adresse fhem-Server> -l <useraccount>

hat der fhem-Server z.B. die IP-Adresse 192.168.1.22 und der Useraccount lautet pi lautet der Befehl

 ssh 192.168.1.22 -l pi

oder einfacher

 ssh pi@192.168.1.22

Sollte die Verbindung erfolgreich hergestellt werden, wird ein Paßwort erbeten. Danach steht die Kommandozeile auf dem fhem-Server zur Verfügung. Nur beim ersten Mal fragt ssh nach, ob der öffentliche Schlüssel des fhem-Servers gespeichert werden soll.

Anmeldung via ssh (Windows)

Windows kommt derzeit ohne ssh-Clienten, dieser muß daher zunächst installiert werden. Ein kostenloses, gutes Programm ist putty. Nach Download, Installation und Aufruf bietet putty eine graphische Oberfläche zur Verwaltung verschiedener ssh-Verbindungen.

Die IP-Adresse des fhem-Servers wird in das Feld Host Name (or IP address) eingegeben. Danach fragt ssh nach einem Benutzernamen (login as: ) und Paßwort.Für Raspberry PI Linux-Distributionen ist der Benutzername im Normallfall pi.

Nach erfolgreicher Eingabe der Informationen steht dann die Kommandozeile des fhem-Servers zur Verfügung und kann zur weiteren Fehlersuche genutzt werden:

Putty-ssh-login.png

Anmeldung an der Console

Sollte das Netzwerk des fhem-Servers nicht funktionieren oder dieser nicht erreichbar sein, bleibt nur die Anmeldung an der Console. Dazu wird ein Monitor und eine Tastatur am fhem-Server direkt angeschlossen (z.B. am HDMI-Port und am USB-Port).

Im Normalfall ist das Bild zunächst schwarz, da der Bildschirmschoner von Linux die Ausgabe deaktiviert. Mehrfaches drücken der Leertaste sollte eine Ausgabe im klassischen 80x25-Zeichenmodus oder in einer graphischen Oberfläche anzeigen.

Linux bietet mehrere virtuelle Consolen. Diese lassen sich mit

 CTRL-ALT-F1
 CTRL-ALT-F2

usw. bis zu

 CTRL-ALT-F6

wechseln. Auf der ersten Console (CTRL-ALT-F1) stehen meist interessante Ausgaben wie Logfiles oder Fehlermeldungen. Auf der 7. Console (CTRL-ALT-F7) läuft meist die graphische Oberfläche.

Für eine Fehlersuche wird eine Textconsole (CTRL-ALT-F2 bis CTRL-ALT-F6) empfohlen. An dieser kann sich mit Username und Paßwort angemeldet werden und danach steht eine Kommandozeile zur Verfügung.

root-Berechtigung erlangen

Nicht alle Befehle unter Linux sind für normale Benutzer (wie Anwender oder der pi-Benutzer) zugänglich oder können aufgerufen werden. Systemnahe Befehle, d.h. Befehle, die in die Grundfunktionen des Betriebssystemes konfigurieren oder umstellen, sind nur für den Nutzer root zugänglich.

root-Rechte erlangt man mit den Befehlen

 sudo -i

oder

 su -

je nach verwendeter Linux-Distribution.

Doch Vorsicht: Linux geht davon aus, daß der Anwender root sehr genau weiß, was er tut. Befehle werden ohne weitere Sicherheitsabfragen ausgeführt - auch die Formatierung der Speicherkarte, externer Laufwerke oder die Löschung aller Dateien. Es ist sehr einfach, durch ein Leerzeichen zuviel oder eines zu wenig einen großen Datenverlust zu erzeugen.

Aus diesem Grund wird dringend empfohlen, die ersten Analyseschritte nur als normaler Anwender (z.B. pi) zu erledigen und wenn der Fehler gefunden wurde, die Behebung mit sudo vorzunehmen. sudo verleiht nur temporär root-Rechte und erfordert für jedes Kommando die explizite Angabe von sudo.

Ein Beispiel: ein normaler User kann

 rm -rf /usr/*

nicht aufrufen. Dieser Befehl löscht alle Dateien im /usr-Verzeichnis, dort liegen die existenziell notwendigen Befehle für Linux. Nach Aufruf dieses Befehls ist die Linuxinstallation unwiderruflich defekt.

Der Nutzer root kann denselben Befehl ohne Sicherheitsabfrage aufrufen.

Der Nutzer pi kann den Befehl mit temporären root-Rechten

 sudo rm -rf /usr/*

aufrufen und benötigt für den Aufruf sein Paßwort.

Kontrolle der laufenden Prozesse

Kontrolle des Netzwerkes

Kontrolle der CUL-Definitionen

Kontrolle der Zugriffsberechtigungen

Kontrolle der Logfiles

Kontrolle der Festplatte

Backup einspielen