FritzBox: FHEM unter root starten: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Falls FHEM auf der FritzBox nicht unter root läuft (sondern boxusr99/fhem), kann man größtenteils keine lokalen Befehle absetzen um bestimmte Vorgänge auf der FritzBox durchzuführen. | Falls FHEM auf der FritzBox nicht unter root läuft (sondern boxusr99/fhem), kann man größtenteils keine lokalen Befehle absetzen um bestimmte Vorgänge auf der FritzBox durchzuführen. | ||
Hier soll erklärt werden, wie man FHEM auf der FritzBox wieder unter dem User root laufen lässt. | Hier soll erklärt werden, wie man FHEM auf der FritzBox wieder unter dem User root laufen lässt. | ||
= Startskript 'startfhem' anpassen = | = Startskript 'startfhem' anpassen = | ||
Um Shell-Zugriff auf die FritzBox zu erhalten muss man zunächst den Telnet-Zugang aktivieren. Dazu muss man einen Code mit irgend einem Telefon wählen, welches an die FritzBox angeschlossen ist (ca 3 Sekunden, anschließend wieder auflegen). | Um Shell-Zugriff auf die FritzBox zu erhalten muss man zunächst den Telnet-Zugang aktivieren. Dazu muss man einen Code mit irgend einem Telefon wählen, welches an die FritzBox angeschlossen ist (ca 3 Sekunden, anschließend wieder auflegen). | ||
* '''#96*7*''' Telnet an | * '''<nowiki>#96*7*</nowiki>''' Telnet an | ||
* '''#96*8*''' Telnet aus | * '''#96*8*''' Telnet aus | ||
Nun verbindet man sich via Telnet zur FritzBox (Port 23) entweder direkt via telnet Kommando, oder unter Windows mit PuTTY | Nun verbindet man sich via Telnet zur FritzBox (Port 23) entweder direkt via telnet Kommando, oder unter Windows mit [http://www.putty.org/ PuTTY] | ||
Nach dem verbinden wird ein Passwort abgefragt, dies ist das Passwort, was ihr für der FritzBox-Oberfläche vergeben habt. | Nach dem verbinden wird ein Passwort abgefragt, dies ist das Passwort, was ihr für der FritzBox-Oberfläche vergeben habt. | ||
Euer Terminal sollte nun so aussehen: | Euer Terminal sollte nun so aussehen: | ||
< | <nowiki>password: | ||
password: | |||
BusyBox v1.19.3 (2012-10-12 14:52:09 CEST) built-in shell (ash) | BusyBox v1.19.3 (2012-10-12 14:52:09 CEST) built-in shell (ash) | ||
Enter 'help' for a list of built-in commands. | Enter 'help' for a list of built-in commands. | ||
ermittle die aktuelle TTY | ermittle die aktuelle TTY | ||
tty is | tty is "/dev/pts/1" | ||
weitere telnet Verbindung aufgebaut | weitere telnet Verbindung aufgebaut | ||
# | #</nowiki> | ||
</ | |||
Sobald ihr eingeloggt seit, wechselt ihr in das Verzeichnis /var/media/ftp/fhem/ | Sobald ihr eingeloggt seit, wechselt ihr in das Verzeichnis /var/media/ftp/fhem/ | ||
< | <nowiki># cd /var/media/ftp/fhem/ | ||
# cd /var/media/ftp/fhem/ | |||
# ls | # ls | ||
CHANGED | CHANGED dfu-programmer fhem.pl perl www | ||
FHEM | FHEM docs lib startfhem | ||
backup | backup fhem.cfg log unused | ||
# | #</nowiki> | ||
</ | Nun öffnet ihr diese Datei mit dem Vi (''vi startfhem'') und löscht den folgenden Berreich aus der Datei. Dazu mit dem Cursor auf die Zeile mit ''START:fhem-user''und so oft ''dd''eingeben, bis alles weg ist. Anschliesend [ESC] drücken und mit '':wq!''speichern und beenden. | ||
Achtung: Der Inhalt kann bei euch ein wenig abweichen, allerdings sollte ein ähnlicher Abschnitt bei euch vorhanden sein, wenn FHEM nicht unter root läuft. | '''Achtung: Der Inhalt kann bei euch ein wenig abweichen, allerdings sollte ein ähnlicher Abschnitt bei euch vorhanden sein, wenn FHEM nicht unter root läuft.''' | ||
<nowiki># add user fhem with uid of boxusr80/boxusr99 (== ftpuser) | |||
< | |||
# add user fhem with uid of boxusr80/boxusr99 (== ftpuser) | |||
# Comment/delete everything between START and END to run FHEM as root | # Comment/delete everything between START and END to run FHEM as root | ||
## START:fhem-user | ## START:fhem-user | ||
id fhem | id fhem > /dev/null 2>&1 | ||
if test | if test "$?" -ne "0"; then | ||
grep -q 1099 /etc/passwd; | |||
if test $? -eq "0"; then | |||
echo "fhem:any:1099:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd | |||
else | |||
echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd | |||
fi | |||
chown -R fhem FHEM docs log www | |||
chown fhem . * | |||
chown root dfu-programmer | |||
chmod u+s dfu-programmer | |||
fi | fi | ||
## END:fhem-user | ## END:fhem-user</nowiki> | ||
</ | Nun könnt ihr die Telnet Sitzung schließen. Fürt nun einen Reboot euer Box durch. Anschließend sollte FHEM unter root laufen. Am besten könnt ihr das auf der Telnet Konsole prüfen, in dem ihr ''ps''ausführt. Die Ausgabe sollte folgende Zeile enthalten: | ||
Nun könnt ihr die Telnet Sitzung schließen. Fürt nun einen Reboot euer Box durch. Anschließend sollte FHEM unter root laufen. Am besten könnt ihr das auf der Telnet Konsole prüfen, in dem ihr ps ausführt. Die Ausgabe sollte folgende Zeile enthalten: | |||
< | <nowiki>2233 root 11320 S perl fhem.pl fhem.cfg</nowiki> | ||
Wenn hier ''root''vorhanden ist, habt ihr alles richtig gemacht. | |||
</ | |||
Wenn hier root vorhanden ist, habt ihr alles richtig gemacht. | |||
Version vom 10. Mai 2013, 21:45 Uhr
Falls FHEM auf der FritzBox nicht unter root läuft (sondern boxusr99/fhem), kann man größtenteils keine lokalen Befehle absetzen um bestimmte Vorgänge auf der FritzBox durchzuführen.
Hier soll erklärt werden, wie man FHEM auf der FritzBox wieder unter dem User root laufen lässt.
Startskript 'startfhem' anpassen
Um Shell-Zugriff auf die FritzBox zu erhalten muss man zunächst den Telnet-Zugang aktivieren. Dazu muss man einen Code mit irgend einem Telefon wählen, welches an die FritzBox angeschlossen ist (ca 3 Sekunden, anschließend wieder auflegen).
- #96*7* Telnet an
- #96*8* Telnet aus
Nun verbindet man sich via Telnet zur FritzBox (Port 23) entweder direkt via telnet Kommando, oder unter Windows mit PuTTY
Nach dem verbinden wird ein Passwort abgefragt, dies ist das Passwort, was ihr für der FritzBox-Oberfläche vergeben habt.
Euer Terminal sollte nun so aussehen:
password: BusyBox v1.19.3 (2012-10-12 14:52:09 CEST) built-in shell (ash) Enter 'help' for a list of built-in commands. ermittle die aktuelle TTY tty is "/dev/pts/1" weitere telnet Verbindung aufgebaut #
Sobald ihr eingeloggt seit, wechselt ihr in das Verzeichnis /var/media/ftp/fhem/
# cd /var/media/ftp/fhem/ # ls CHANGED dfu-programmer fhem.pl perl www FHEM docs lib startfhem backup fhem.cfg log unused #
Nun öffnet ihr diese Datei mit dem Vi (vi startfhem) und löscht den folgenden Berreich aus der Datei. Dazu mit dem Cursor auf die Zeile mit START:fhem-userund so oft ddeingeben, bis alles weg ist. Anschliesend [ESC] drücken und mit :wq!speichern und beenden.
Achtung: Der Inhalt kann bei euch ein wenig abweichen, allerdings sollte ein ähnlicher Abschnitt bei euch vorhanden sein, wenn FHEM nicht unter root läuft.
# add user fhem with uid of boxusr80/boxusr99 (== ftpuser) # Comment/delete everything between START and END to run FHEM as root ## START:fhem-user id fhem > /dev/null 2>&1 if test "$?" -ne "0"; then grep -q 1099 /etc/passwd; if test $? -eq "0"; then echo "fhem:any:1099:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd else echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd fi chown -R fhem FHEM docs log www chown fhem . * chown root dfu-programmer chmod u+s dfu-programmer fi ## END:fhem-user
Nun könnt ihr die Telnet Sitzung schließen. Fürt nun einen Reboot euer Box durch. Anschließend sollte FHEM unter root laufen. Am besten könnt ihr das auf der Telnet Konsole prüfen, in dem ihr psausführt. Die Ausgabe sollte folgende Zeile enthalten:
2233 root 11320 S perl fhem.pl fhem.cfg
Wenn hier rootvorhanden ist, habt ihr alles richtig gemacht.