apache läuft nicht - kaputte group, shadow files

nuppla.Phil

Neuer User
Mitglied seit
4 Mai 2009
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich bin relativ neu im Gebiet der Fritzbox Modifikationen.

Aktuell besitze ich eine Fritzbox Fon WLAN 7170 Annex A
Firmware: 58.04.59

mein debug.cfg file ist folgendermaßen (es ist zT von einer Seite abgekupfert, weil sie eig. ziemlich gut geklungen hat, ich verstehe aber, bis auf den letzten teil, dazu muss ich mich noch ein bischen eingehender mit linux beschäftigen, bin aber am guten weg, alles, und habe auch modifikationen (z.b. den apache-start) vorgenommen)
[Edit frank_m24: Bitte benutzt CODE Tags für solche Ausgaben.]
Code:
###
### start telnet deamon with password of web gui
###

echo "DEBUG.CFG: start telnet deamon"
/usr/sbin/telnetd -l /sbin/ar7login


###
### set hostname to fritz.box
###

echo "DEBUG.CFG: set hostname to fritz.box"
hostname fritz.box


# wait for USB to be mounted
echo "DEBUG.CFG: wait 30s ..."
sleep 10
echo "DEBUG.CFG: wait 20s ..."
sleep 10
echo "DEBUG.CFG: wait 10s ..."
sleep 5
echo "DEBUG.CFG: wait 5s ..."
sleep 2
echo "DEBUG.CFG: wait 3s ..."
sleep 1
echo "DEBUG.CFG: wait 2s ..."
sleep 1
echo "DEBUG.CFG: wait 1s ..."
sleep 1


###
### start ssh deamon
###
echo "DEBUG.CFG: ************************************"
echo "DEBUG.CFG: *** starting dropbear SSH deamon ***"
echo "DEBUG.CFG: ************************************"

cd /var/tmp
mkdir /var/tmp/root/
mkdir /var/tmp/root/.ssh

# password ()
PASSWD='XXXXXXXXXXXXXXXXXXXX'

# load files from usb stick
echo "DEBUG.CFG: loading ssh-binaries from usb stick"
for f in /var/media/ftp/*
do
  sourcedir=${f}/fritzbox

# dropbear
  thisfile="dropbear"
  targetdir=/var/tmp
  rights="+x"
  if [ -f $sourcedir/$thisfile ]
  then
    echo "DEBUG.CFG: cp $sourcedir/$thisfile to $targetdir/$thisfile"
    cp $sourcedir/$thisfile $targetdir/$thisfile
    echo "DEBUG.CFG: chmod $rights $targetdir/$thisfile"
    chmod $rights $targetdir/$thisfile
  fi

# busybox
  thisfile="busybox"
  targetdir=/var/tmp
  rights="+x"
  if [ -f $sourcedir/$thisfile ]
  then
    echo "DEBUG.CFG: cp $sourcedir/$thisfile to $targetdir/$thisfile"
    cp $sourcedir/$thisfile $targetdir/$thisfile
    echo "DEBUG.CFG: chmod $rights $targetdir/$thisfile"
    chmod $rights $targetdir/$thisfile
  fi

# dropbear_dss_host_key
  thisfile="dropbear_dss_host_key"
  targetdir=/var/tmp
  rights="+x"
  if [ -f $sourcedir/$thisfile ]
  then
    echo "DEBUG.CFG: cp $sourcedir/$thisfile to $targetdir/$thisfile"
    cp $sourcedir/$thisfile $targetdir/$thisfile
    echo "DEBUG.CFG: chmod $rights $targetdir/$thisfile"
    chmod $rights $targetdir/$thisfile
  fi

# dropbear_rsa_host_key
  thisfile="dropbear_rsa_host_key"
  targetdir=/var/tmp
  rights="700"
  if [ -f $sourcedir/$thisfile ]
  then
    echo "DEBUG.CFG: cp $sourcedir/$thisfile to $targetdir/$thisfile"
    cp $sourcedir/$thisfile $targetdir/$thisfile
    echo "DEBUG.CFG: chmod $rights $targetdir/$thisfile"
    chmod $rights $targetdir/$thisfile
  fi

# /var/tmp/root/.ssh/authorized_keys
  thisfile="authorized_keys"
  targetdir=/var/tmp/root/.ssh
  rights="700"
  if [ -f $sourcedir/$thisfile ]
  then
    echo "DEBUG.CFG: cp $sourcedir/$thisfile to $targetdir/$thisfile"
    cp $sourcedir/$thisfile $targetdir/$thisfile
    echo "DEBUG.CFG: chmod $rights $targetdir/$thisfile"
    chmod $rights $targetdir/$thisfile
  fi

# start apache
  thisfile="apache"
  targetdir=${f}/apache-1.3.37
  if [ -f $targetdir/$thisfile ]
  then
    echo "DEBUG.CFG: start $targetdir/$thisfile"
    $targetdir/$thisfile -f $targetdir/conf/apache.conf
  fi

done

# set busybox var
echo "DEBUG.CFG: set busybox var"
BUSYBOX="/var/tmp/busybox"

# change root password
echo "DEBUG.CFG: change ssh root password"
${BUSYBOX} sed -e "/root:/s#^root:[^:]*:#root:${PASSWD}:#" -i /var/tmp/shadow

# set $HOME for root to /var/tmp/root/
echo "DEBUG.CFG: set HOME for root to /var/tmp/root"
echo "root:x:0:0:root:/var/tmp/root/:/bin/sh" > /var/tmp/passwd

# set set path to SCP root
echo "DEBUG.CFG: set path to SCP"
echo "export PATH=$PATH:/var/tmp:/sbin:/usr/sbin " > /var/tmp/root/.profile

# create symlink for /var/tmp/dropbearkey and /var/tmp/scp
echo "DEBUG.CFG: create symlink for dropbearkey and /var/tmp/scp"
ln -s /var/tmp/dropbear dropbearkey
ln -s /var/tmp/dropbear scp

# start dropbear
echo "DEBUG.CFG: wait 5s ..."
sleep 5
echo "DEBUG.CFG: start ssh deamon on port 22"
/var/tmp/dropbear -p 22 -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key


###
### delete warnings for non authorized firmware :-)
###
echo "DEBUG.CFG: ******************************************************"
echo "DEBUG.CFG: *** deleting warnings for non authorized firmware  ***"
echo "DEBUG.CFG: ******************************************************"

dst=/var/tmp/signed_firmware
src=/usr/www/html/de/home
mkdir -pm 777 $dst
for file in home.js konfig.js; do
  if [ -f $src/$file ]; then
    sed -e 's,.*var signed=.*,var signed = "1",' $src/$file > $dst/$file
    mount -o bind $dst/$file $src/$file
  fi
done

### end of debug.cfg

Alles läuft:

SSH login mit private key funktioniert (erkennt meinen key auf der fritzbox)
telnet login geht auch
mittels einem portforwarding kann ich auch ssh von aussen zugreifen

Nur apache startet nicht. Also habe ich mich auf die Fehlersuche gemacht. Folgender Fehler kommt beim starten von apache:
apache: bad user name ftpuser
Nun weiß ich, dass apache ja nicht als root laufen darf, und das in der apache.conf eben ftproot und gruppe root steht.

ftpuser wird aber von der fritzbox ja intern schon gebraucht (so habe ich das verstanden) und das scheint alles zu laufen (zumindest noch nichts gegenteiliges bemerkt)

Als wollte ich mir mal die Gruppen anschauen ... folgendes kommt bei
group
/var/tmp/group: /var/tmp/group: 1: root:x:0:: not found
shadow
/var/tmp/shadow: /var/tmp/shadow: 1: root:pBvr5tOlt/rao:12332:0:99999:7:::: not found
passwd (unter ssh+telnet)
-sh: passwd: Permission denied

Ich bin mir sicher, dass ich durch das debug script mir irgendwas zerschossen habe, aber ich weiß nicht was .. Ich hab das script von oben nach unten und umgekehrt durchgeackert und finde nichts, was nicht auch schon in diesem Forum als "funktionierend" gepostet wurde ..

Bin über jeden Tipp dankbar :)

Achja wahrscheinlich auch interessant, was ich überhaupt erreichen will:

- SSH zugang von aussen mit private/public key für erweiterte sicherheit (geht)
- webseite von aussen, die per ehterwake einen file server aufdreht und mit einem weiteren befehl diesen wieder abschießt (apache+PHP+SSL+fritzboxbefehle+sicherheit - am recherchieren ^^)
- file-server mit (wenn möglich - mehr recherche notwendig) SSL verschlüsselung nach aussen lassen -> irgendwelche webdienste am server und außerdem um mir musik auch von überal her anhören zu können, das ist aber ein andres Thema + nicht in diesem Forum disktuierbar ^^

mfg
Phil
 
Zuletzt bearbeitet:
ok um mir selber eine Antwort zu geben:

ich depp war gestern total verwirrt und hab immer das "cat" vorne weggelassen -> darum wollte er die dateien ausführen -.- .. depp ich ^^

aber warum war der user ftpuser weg ?

-> der befehl, mit dem ich das neue home directory eintrage ÜBERSCHREIBT die passwd datei und löscht damit alle andren user (einschließlich ftpuser)
da das nach dem systemstart passiert, laufen zwar alle systemprozesse korrekt, aber dann natürlich vermurks ich die passwd ..

folgender befehl verhindert das:
sed '\_root:x:_ s_:/:_:/var/tmp/root:_' /var/tmp/passwd > /var/tmp/passwdnew
mv /var/tmp/passwdnew /var/tmp/passwd

mit dem befehl ersetzt man das home directory der root zeile :) (vielen dank an einen Kollegen, der mir dabei geholfen hat)

danach startet auch der apache wunderbar :) ..

mfg
phil
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.