FritzBox: FHEM unter root starten: Unterschied zwischen den Versionen

Aus FHEMWiki
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:


<pre>
<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 "/dev/pts/1"
tty is &quot;/dev/pts/1&quot;
weitere telnet Verbindung aufgebaut
weitere telnet Verbindung aufgebaut
#
#</nowiki>
</pre>
 
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/


<pre>
<nowiki># cd /var/media/ftp/fhem/
# cd /var/media/ftp/fhem/
# ls
# ls
CHANGED         dfu-programmer fhem.pl         perl           www
CHANGED     dfu-programmer fhem.pl     perl     www
FHEM           docs           lib             startfhem
FHEM     docs     lib       startfhem
backup         fhem.cfg       log             unused
backup     fhem.cfg   log       unused
#
#</nowiki>
</pre>
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.


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)
<pre>
# 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 > /dev/null 2>&1
id fhem &gt; /dev/null 2&gt;&amp;1
if test "$?" -ne "0"; then
if test &quot;$?&quot; -ne &quot;0&quot;; then
  grep -q 1099 /etc/passwd;
grep -q 1099 /etc/passwd;
  if test $? -eq "0"; then
if test $? -eq &quot;0&quot;; then
    echo "fhem:any:1099:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
  echo &quot;fhem:any:1099:0:fhem:/home-not-used:/bin/sh&quot; &gt;&gt;/var/tmp/passwd
  else
else
    echo "fhem:any:1080:0:fhem:/home-not-used:/bin/sh" >>/var/tmp/passwd
  echo &quot;fhem:any:1080:0:fhem:/home-not-used:/bin/sh&quot; &gt;&gt;/var/tmp/passwd
  fi
fi
  chown -R fhem FHEM docs log www
chown -R fhem FHEM docs log www
  chown fhem . *
chown fhem . *
  chown root dfu-programmer    
chown root dfu-programmer  
  chmod u+s dfu-programmer
chmod u+s dfu-programmer
fi  
fi  
## END:fhem-user
## END:fhem-user</nowiki>
</pre>
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:


<pre>
<nowiki>2233 root   11320 S perl fhem.pl fhem.cfg</nowiki>
2233 root     11320 S   perl fhem.pl fhem.cfg
Wenn hier ''root''vorhanden ist, habt ihr alles richtig gemacht.
</pre>
Wenn hier root vorhanden ist, habt ihr alles richtig gemacht.
[[Kategorie:FritzBox]]

Version vom 10. Mai 2013, 22: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.