modlib_adduser

CoolBlue82

Neuer User
Mitglied seit
30 Jan 2006
Beiträge
50
Punkte für Reaktionen
0
Punkte
0
Hi
habe heute aus dem trunk mir ne Firmware gebastelt. habe nun das Problem, dass die modlib_adduser nicht gefunden werden kann. dadurch kann dnsmasq nicht starten.
wenn ich den User und die Grupper per hand einstelle, dann geht alles wieder.

Kann ich da was machen, damit das automatisch funktioniert?
Habe keine Lust, nach jedem Reboot die Gruppe/User anzulegen

Gruß
CoolBlue
 
Zuletzt bearbeitet:
Hat einer vielleicht ne Lösung?

Freetz läuft über USB-Root
FritzBox 7170
 
Mach bitte ein Ticket im Trac auf, dass der Fehler nicht vergessen wird.

MfG Oliver
 
Es wäre noch wichtig zu wissen, in welchem Zusammenhang modlib_adduser nicht gefunden wird.

Gibt es ein Skript in Freetz, wo das aufgerufen und nicht gefunden wird?
Oder rufst Du das von Hand auf?

modlib_adduser ist nicht eine Datei, sondern eine Funktion, die in root/etc/init.d/modlibrc definiert wird.
 
die funktion wird in rc.dnsmasq beim initialisieren ausgeführt, um den Benutzer nobody anzulegen. Dies scheitert und dadurch startet dnsmasq nicht. erst wenn ich die Gruppe und den Benutzer "nobody" per Hand anlege, funktioniert dnsmasq
 
rc.dnsmasq allerdings inkludiert die Bibliothek, in der die Funktion deklarierst wird direkt zu Anfang. Sonderbar.
 
Hm, eigentlich wird ". /etc/init.d/modlibrc" in der Datei ausgeführt. Poste doch mal die Ausgabe von "sh -x /etc/init.d/modlibrc restart". Vorher aber bitte den User nobody wieder löschen. Ich kann das nicht selbst ausprobieren, da meine Box beim dnsmasq restart reproduzierbar nicht mehr auf ihre IP reagiert..
 
/var/mod/root # sh -x /etc/init.d/modlibrc restart
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n ]

und das kommt, wenn ich über die Dienste Seite starten will
Looking for user 'nobody' ... created - now saving to data buffer ... done
Starting dnsmasq...failed.
 
Ach Mist, hab mich verschrieben. Ich meinte "sh -x /etc/init.d/rc.dnsmasq restart"
 
[Edit frank_m24: Bitte benutzt CODE Tags für lange Ausgaben.]
Code:
   __  _   __  __ ___ __
  |__ |_) |__ |__  |   /
  |   |\  |__ |__  |  /_

   The fun has just begun...


BusyBox v1.11.1 (2008-08-06 23:55:48 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
/var/mod/root # sh -x /etc/init.d/rc.dnsmasq start
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib
+ DAEMON=dnsmasq
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n dnsmasq ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.178.20,192.168.178.200,12h
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=domain.tld
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ which igdd
+ basename /sbin/igdd
+ _igdd=igdd
+ /sbin/multid -?
+ grep upnp
+ _multid_upnp=  -u                 - do not start basic upnp-device. (NOTSET)
+ [   -u                 - do not start basic upnp-device. (NOTSET) ]
+ [ ! igdd ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.178.20,192.168.178.200,12h
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=domain.tld
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ start
+ local lease
+ modlib_adduser nobody -s /bin/false -D -S -H -G nobody -g nobody
+ local user=nobody
+ shift
+ echo -n Looking for user 'nobody' ...
Looking for user 'nobody' ... + grep -q ^nobody: /etc/passwd
+ adduser -s /bin/false -D -S -H -G nobody -g nobody nobody
+ local msg=adduser: unknown group name: nobody
+ [ 0 = 0 ]
+ echo -n created - now saving to data buffer ...
created - now saving to data buffer ... + modusers save
+ echo done
done
+ [ -x /tmp/flash/dnsmasq_conf ]
+ /mod/etc/default.dnsmasq/dnsmasq_conf
+ [ -r /tmp/flash/dnsmasq.extra ]
+ echo -n Starting dnsmasq...
Starting dnsmasq...+ [  != nomultid ]
+ multid -s
+ OPTIONS=
+ [ 53 ]
+ OPTIONS= -p "53"
+ eval dnsmasq  -p "53"
+ dnsmasq -p 53

dnsmasq: unknown user or group: nobody
+ exitval=1
+ [  != nomultid ]
+ multid
+ [ -f /var/tmp/avm-resolv.conf -a ! -L /var/tmp/avm-resolv.conf ]
+ ln -s resolv.conf /var/tmp/avm-resolv.conf
ln: /var/tmp/avm-resolv.conf: File exists
+ [ ! -L /var/flash/multid.leases -a yes = yes ]
+ [ -f /var/tmp/multid.leases ]
+ chmod 0664 /var/tmp/multid.leases
+ chown root:nobody /var/tmp/multid.leases
chown: unknown user/group root:nobody
+ [ -f /var/tmp/dnsmasq.leases ]
+ chmod 0664 /var/tmp/dnsmasq.leases
+ chown root:nobody /var/tmp/dnsmasq.leases
chown: unknown user/group root:nobody
+ [ 1 -eq 0 ]
+ echo failed.
failed.
+ exit 1

Das kommt raus, wenn ich es nach dem reboot direkt über ssh starte
 
Ok, kann nicht funktiionieren:

Code:
BusyBox v1.11.1 (2008-08-07 16:15:54 CEST) multi-call binary

Usage: adduser [OPTIONS] user_name

Add an user

Options:
        -h DIR          Home directory
        -g GECOS        GECOS field
        -s SHELL        Login shell
        -G GROUP        Add user to [COLOR="Red"][B]existing[/B][/COLOR] group
        -S              Create a system user
        -D              Do not assign a password
        -H              Do not create home directory

Test bei mir:
Code:
adduser -s /bin/false  -D -S -H -G gabc -g nabc uabc
adduser: unknown group name: gabc

Dafür ist wohl ein Ticket nötig. Immerhin ist nun die Ursache bekannt. Du könntest den Patch aus Ticket #61 nehmen, damit passwd & co nicht zurückgesetzt werden

PS: Was bedeuted bei adduser -S wie "Create a system user"??

EDIT: Ticket 225
 
Zuletzt bearbeitet:
@CoolBlue82 (und viel andere):
Deine Vermutung am Anfang, daß modlib_adduser nicht gefunden werden kann, ist falsch.

Selbst wenn Du nur den zweiten Teil von Beitrag #8 gleich geschrieben hättest, wäre es offensichtlich gewesen, daß modlib_adduser gefunden wird, weil keine gegenteilige Meldung kommt.

Bitte beschreibt bei Problemen die genauen Beobachtungen und nicht (nur) irgendwelche Vermutungen zu den Ursachen.
Eine Vermutung zur Ursache ist gut, sollte aber nie ohne die Beschreibung des Fehlers kommen.
 
Sorry, wusste nicht, dass es sich dabei um eine Funktion aus der einen Datei handelt. da ich die Funktion versucht habe in der Console aufzurufen.
und über "addgroup nobody" und dann "adduser nobody -g nobody" alles funktioniert hat, bin ich davon ausgegangen, dass es daran liegt
 
Es ist kein Vorwurf, sondern nur eine Bitte (an alle), wirklich das zu beschreiben, was das Problem ist. Es spart letztlich uns allen Zeit, auch dem, der die Frage stellt.

Über die Ursache kann man nur dann sicher sein, wenn man auch eine Lösung dafür hat. Und selbst wenn man die Lösung hat, sollte man trotzdem das Problem beschreiben, damit andere nachvollziehen können, welches Problem man lösen will.
 
Danke. Wir werden das einbauen, sobald jemand Zeit findet.

MfG Oliver

edit: Done.
 
Zuletzt bearbeitet:
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.