Benutzer persistent Anlegen auf Freetz funktioniert trotz libfreetz-Patch nicht?

seek

Neuer User
Mitglied seit
15 Mai 2006
Beiträge
46
Punkte für Reaktionen
0
Punkte
6
Hallo.

ich habe bis gestern freetz-stable-1.0 auf mein 7170 gehabt. Es hat für die Firmware nicht geklappt patch libfreetz zu erstellen. Da kam nach patch befehl folgende Meldung.


Code:
patching file make/libs/libfreetz.mk
patching file make/libs/Config.in
Hunk #1 FAILED at 664.

Heute habe ich die folgende development Version von freetz erfolgreich gepatch und auf die Box hochgeladen.

Firmware-Version 29.04.59freetz-devel-2675M

Dann bin ich auf die box durch ssh gegangen (dropbear) und habe folgendes eingegeben um einen user anzulegen.

Code:
/var/mod/root # adduser hans
Changing password for hans
New password:
Bad password: too weak
Retype password:
Password for hans changed by root
/var/mod/root # cat /etc/passwd
root:x:0:0:root:/mod/root:/bin/sh
ftpuser:any:1000:0:ftp user:/var/media/ftp:/bin/sh
ftp:x:1:1:FTP account:/home/ftp:/bin/sh
hans:x:1001:1001:Linux User,,,:/home/hans:/bin/sh
/var/mod/root # cat /etc/group
root:x:0:
users:x:1:
hans:x:1001:
/var/mod/root # cat /etc/shadow
root:XXPWDXX:12332:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
hans:XXPWDXX:14174:0:99999:7:::
/var/mod/root # modusers save
/var/mod/root # modsave flash
Writing /var/flash/freetz...done.
10752 bytes written.

Sieht alles in Ordnung aus bis auf der Eintrag in /etc/group oder nicht?

So sieht login versuch gleich danach aus

Code:
fritz.box login: hans
Password:
   __  _   __  __ ___ __
  |__ |_) |__ |__  |   /
  |   |\  |__ |__  |  /_

   The fun has just begun...
login: cannot run /bin/sh: Permission denied
/var/mod/root #

Also seltsamerweise kann der User sich nicht einloggen? Hat jemand eine Erklärung dazu?

Dann mach ich ein Reboot um zu sehen ob der Benutzer hans persistent gespeichert wurde. Und so siehts nach ein Reboot aus:


Code:
/var/mod/root # login
fritz.box login: hans
Password:
Login incorrect
/var/mod/root # cat /etc/passwd
root:x:0:0:root:/mod/root:/bin/sh
ftpuser:any:1000:0:ftp user:/var/media/ftp:/bin/sh
ftp:x:1:1:FTP account:/home/ftp:/bin/sh
/var/mod/root # cat /etc/group
root:x:0:
users:x:1:
hans:x:1001:
/var/mod/root # cat /etc/shadow
root:XXPWDXX:12332:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
ftp:!:10957:0:99999:7:::
hans:XXPWDXX:14174:0:99999:7:::
ftp:!:10957:0:99999:7:::
/var/mod/root #

Hans ist also von /etc/passwd verschwunden, ist aber in /etc/group noch drin...

Libfreetz ist definitiv dies Mal auf der Box

Code:
/var/mod/root # ls /lib/libfreetz.so
/lib/libfreetz.so        /lib/libfreetz.so.1      /lib/libfreetz.so.1.0.0


Was mache ich Falsch? Bitte um Hilfe.

Vielen Dank schon mal im Voraus.
 
jo...also erstmal iss der patch oben inne Hose gegangen(musst du nochmal per Hand die Änderung die der Patch tun würde nachziehen oder den Patch für dich anpassen)
dann solltest du dir den gefallen tun und die User die du anlegst in der /var/tmp/passwd anlegen und am besten gleich mit nem Homepfad(für z.b. ftp Verwendung)
Sollte dann aber gehen...bei rennt es ja auch hervorragend
 
siehe auch in diesem Thread ;)
 
Dieser Patch ging mit der devel-version durch? Konntest du libfreetz im Menuconfig auswählen und hast das auch getan??

Hast du diesen Patch auch im <freetz-dir>/patches/ Verzeichnis abgelegt?
 
Dieser Patch ging mit der devel-version durch?
Ja!
Konntest du libfreetz im Menuconfig auswählen und hast das auch getan??
Nein, konnte ich nicht. libfreetz war in Menuconfig nicht sichtbar.

Hast du diesen Patch auch im <freetz-dir>/patches/ Verzeichnis abgelegt?
Nein hab ich nicht. Ich dachte das wäre nur eine ältere Version von libfreetz. Muss ich diesen auch mit patch -p0 befehl patch? Sollen die patches unter <freetz-dir>/patches/ kopiert werden?

Ich probiere es mal aus..

So ich habe es jetzt ausprobiert. 150-rc.S-libfreetz.patch die Datei ist nicht zu patchen da die Datei etc/init.d/rc.S nicht existiert..

Code:
/freetz-trunk$ patch -p0 < 150-rc.S-libfreetz.patch
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- etc/init.d/rc.S.orig       2008-06-01 23:16:14.000000000 +0200
|+++ etc/init.d/rc.S    2008-06-01 23:16:30.000000000 +0200
--------------------------
File to patch:
Scheint So als ob libfreetz patch wirklich nicht mehr funktioniert...?
 
Zuletzt bearbeitet:
zum einen musst du libfreetz auch wirklich auswählen im menuconfig, dazu muss wahrscheinlich advanced options aktiviert sein.
Der zweite patch muss in das Verzeichnis <freetz>/patches kopiert werden, weil er während des make-Vorgangs benutzt wird um rc.S zu patchen.

@Oliver: Ist das so richtig? Es steht im Thread nicht genau drin, aber so habe ich es mir anhand des Patches erschlossen. Den anwenden und den nach <freetz>/patches kopieren.


Bei mir klappt das so :)

kleiner Tip: libfreetz befindet sich bei den Libarys
 
Ich benutze momentan den angehängten Patch. Mit Labor hab ich nie getestet. Es sind dann keine weiteren Patches nötig!
 
Zuletzt bearbeitet:
wenn ich das richtig sehe macht der aber auch nix anderes als zusätzlich noch den 150-rc.S-libfreetz.patch in die patch-Verzeichnisse für 7270 und 7170 zu kopieren, oder?
Mach ich halt per Hand (install-script) :)

PS:auf der 7141 funzt libfreetz auch :)
 
jetzt habe ich es ausprobiert und den 150-rc.S-libfreetz.patch in die patch-Verzeichnisse und anschlißend ein make. Dann die Firmware habe ich auf die box hochgeladen. Jetzt antwortet der webserver nicht mehr. 192.168.178.1 von fritzbox nicht mehr. http://192.168.178.1:81/ also freetz webseite geht..per ssh kann ich auf die box und ich sehe der angelegte benutzer bleibt nach einem reboot drin aber jetzt habe ich ein anderes problem. kann ich das irgendwie schnell beheben? Oder muss ich ein recover durchführen.
 
kinners...
die 150ér datei in /patches/boxtype/
den anderen via patch einspielen wie oben beschrieben patch -p0 < ...
das sind 2 Dateien...ganz simpel...
und wenn der nicht 150´er mal streickt weil was irgendwo geändert iss, dann einfach mal editieren udn schauen was er wo macht und das per hand machan...so schwer iss das nicht...
helfe aber gern weiter
 
@matze1985: Da der Patch aus dem Ticket wohl nicht mehr ganz passte, habe ich meine Version angehängt, die ändere ich immer wenns mal klemmt. Ist aber das gleiche wie aus dem Ticket, allerdings mit 3 Boxen und nur 1 Patch-Datei
 
Ich hab dein Patch mal ans Ticket angehängt und meinen gelöscht.

MfG Oliver
 
hi.

also ich habe noch mal ein frisch erstelles Image mit libfreetz auf die box getan. Scheint den neu angelegten benutzer auch nach dem einloggen zu geben. das problem ist dass einloggen nicht klappt. da der neu user /bin/sh nicht ausführen darf.Hier noch mal der Login versuch.

Code:
Password:
   __  _   __  __ ___ __
  |__ |_) |__ |__  |   /
  |   |\  |__ |__  |  /_

   The fun has just begun...
login: cannot run /bin/sh: Permission denied

Der benutzer wurde durch den folgenden befehl angelegt.

Code:
adduser -h /home/svn -G svnusers svn

Warum kann der user also sich nicht einloggen also /bin/sh ausführen?
 
Zuletzt bearbeitet:
kann es sein dass der Fehler oben etwas mit Mount zu tun hat weil da unten bei sysfs und proc noexec steht?

Code:
/var/mod/root # cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
proc            /proc           proc    nosuid,nodev,noexec     0       0
tmpfs           /var            tmpfs   defaults                0       0
sysfs           /sys            sysfs   nosuid,nodev,noexec     0       0
 
Zuletzt bearbeitet:
Es darf sich ausser root per ssh niemand einloggen. Such mal im Forum
 
Das sieht dann aber nicht so aus oder?

MfG Oliver
 
Es darf sich ausser root per ssh niemand einloggen. Such mal im Forum

folgender dropbear patch ist gelöscht damit non-root login per ssh funktionieren kann.

Code:
<freetz-dir>/make/dropbear/patches/100-root-login-only.patch

Außerdem klappt der versuch innerhalb der shell mit dem befehl "login" einzuloggen auch nicht. Also ich glaube das hat irgendwas mit berechtigungen zu tun aber ich weiss leider nicht was.. Vielleicht hilf einem erfahrenen folgendes ? Sind die flags bei /lib normal?

Code:
/var/mod/root # ls -ld / /bin /etc/ /lib /home
drwxrwxrwx    1 root     root          128 Oct 23 23:03 /
drwxrwxr-x    1 root     root          939 Oct 23 23:03 /bin
drwxrwxr-x    1 root     root          736 Oct 23 22:20 /etc/
lrwxrwxrwx    1 root     root           12 Oct 23 23:03 /home -> var/mod/home
drwxrwx---    1 root     root         3456 Oct 23 23:03 /lib
 
Vielleicht gibt es das HOME des Benutzers nicht oder die Rechte sind falsch. Oder die Shell ist nicht richtig eingestellt in der passwd
 
Vielleicht gibt es das HOME des Benutzers nicht oder die Rechte sind falsch. Oder die Shell ist nicht richtig eingestellt in der passwd

die Shell ist eingestellt auf /bin/sh und HOME verzeichnis für den Benutzer existiert auch.



Code:
/var/mod/root # ls -l /home/
drwxr-xr-x    2 ftp      users           0 Jan  1  2000 ftp
drwxr-xr-x    2 hans     hans            0 Jan  1  2000 hans

/var/mod/root # cat /etc/passwd
root:x:0:0:root:/mod/root:/bin/sh
ftpuser:any:1000:0:ftp user:/var/media/ftp:/bin/sh
ftp:x:1:1:FTP account:/home/ftp:/bin/sh
hans:x:1001:1001:Linux User,,,:/home/hans:/bin/sh
 
Bei dem gelöschten Patch, hast du danach ein make dropbear-dirclean && make gemacht?
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,229
Beiträge
2,248,412
Mitglieder
373,799
Neuestes Mitglied
Gracesorlie
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.