Am Mittwoch, 18. Januar 2006 08:26 schrieb Jens Strohschnitter:
wo kriegt man denn die Sourcen her ?
SUSE <= 9.3: von der zweiten DVD oder vom FTP-Server SUSE 10.0: von einer extra zu bestellenden DVD oder vom FTP-Server des openSUSE Projekts (oder nem Mirror)
Hallo,
Das sind aber doch dann die Sourcen, bei denen die Abfrage auf /dev/null bereits in den Quellen enthalten ist, oder ? Wenn das Ganze mit dem Linux-Dreisatz ./configure;make;make install kompiliere wird die Abfrage doch sicher wieder mit reinkompilliert, oder ?
Ja. Ich habe gerade mal eine 9.2er Version der pwdutils heruntergeladen.
Dort steht im Changelog:
2003-12-09 Thorsten Kukuk
Das sind aber doch dann die Sourcen, bei denen die Abfrage auf /dev/null bereits in den Quellen enthalten ist, oder ? Wenn das Ganze mit dem Linux-Dreisatz ./configure;make;make install kompiliere wird die Abfrage doch sicher wieder mit reinkompilliert, oder ?
Ja. Ich habe gerade mal eine 9.2er Version der pwdutils heruntergeladen. Dort steht im Changelog:
2003-12-09 Thorsten Kukuk
[...] * lib/check_home.c (check_home): New, check path to home directory.
Also zumindest von SuSE beigetragen.
Du kannst nach der Installation im Verzeichnis /usr/src/packages/SOURCES/pwdutils-2.6.90/src (oder so ähnlich: DAS hier ist auf 9.2) in der Datei useradd.c den entsprechenden Code entfernen.
Auf 9.2 findet die Suche nach check_home bzw. nach "Invalid home directory" die Zeilen:
case 'b': /* for compatibility with shadow useradd. */ case 'd': if (check_home (optarg) == -1) { fprintf (stderr, _("%s: Invalid home directory `%s'.\n"), program, optarg); return E_BAD_ARG; } new_home = optarg; break;
Wenn Du die gesamte if-Abfrage löschst, sollte das alte Verhalten wieder hergestellt sein. Das zweite Vorkommen von "Invalid home directory" scheint sich auf den Default zu beziehen, wo aber witzigerweise kein check_home durchgeführt wird. Deshalb funktioniert dort auch ein /dev/null als HOME Verzeichnis. Sehr inkonsistent, würde ich mal behaupten.
[...]
Hi, klappt prima. Pwdutils braucht das pam-devel-Paket zum compilieren und ich musste mich nochmal 6 Jahre zurückentsinnen wie man Kommentare in C schreibt ;-) Einziges offenes Problem ist natürlich wenn mal wieder SuSE Update-Pakete rausbringt. Dann wird das neu kompilierte useradd sicher wieder überschrieben. Muss man halt drauf achten :-) Auf alle Fälle vielen vielen Dank. Das Problem scheint lt. google seit 2004 ungelöst zu sein. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun -------------------------------------
Auf 9.2 findet die Suche nach check_home bzw. nach "Invalid home directory" die Zeilen:
case 'b': /* for compatibility with shadow useradd. */ case 'd': if (check_home (optarg) == -1) { fprintf (stderr, _("%s: Invalid home directory `%s'.\n"), program, optarg); return E_BAD_ARG; } new_home = optarg; break;
Wenn Du die gesamte if-Abfrage löschst, sollte das alte Verhalten wieder hergestellt sein. Das zweite Vorkommen von "Invalid home
Hups: das ist nach einem erneuten Lesen KEINE gute Idee, weil Du damit auch die Prüfung auf ':' und '\n' im Pfad aufgibst. Besser, Du änderst die Prüfung - wie ich später erwähnt hatte - in lib/check_home.c . (Nicht) nur, damit Du an Programmierübung gewinnst ;-)))) Thomas
* Thomas Mack wrote on Wed, Jan 18, 2006 at 17:11 +0100:
Wenn Du die gesamte if-Abfrage löschst, sollte das alte Verhalten wieder hergestellt sein. Das zweite Vorkommen von "Invalid home
Hups: das ist nach einem erneuten Lesen KEINE gute Idee, weil Du damit auch die Prüfung auf ':' und '\n' im Pfad aufgibst. Besser, Du änderst die Prüfung - wie ich später erwähnt hatte - in lib/check_home.c .
Wenn root per Kommandozeilenschalter die Verwendung von "/windisk/C:/home/" befiehlt, sollte das IMHO funktionieren. Gut, dass mit dem : ist vermutlich ein kleines Problem für /etc/passwd und darf daher dann verboten werden (vermutlich kann /etc/passwd kein escaping, und das ist ja auch nicht schlecht, muss Grenzen geben). (Na egal, /dev/null als home ist sicherlich auch keine so tolle Idee gewesen ;)) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.
wo kriegt man denn die Sourcen her ?
SUSE <= 9.3: von der zweiten DVD oder vom FTP-Server SUSE 10.0: von einer extra zu bestellenden DVD oder vom FTP-Server des openSUSE Projekts (oder nem Mirror)
Hallo,
Das sind aber doch dann die Sourcen, bei denen die Abfrage auf /dev/null bereits in den Quellen enthalten ist, oder ? Wenn das Ganze mit dem Linux-Dreisatz ./configure;make;make install kompiliere wird die Abfrage doch sicher wieder mit reinkompilliert, oder ?
Ja. Ich habe gerade mal eine 9.2er Version der pwdutils heruntergeladen. Dort steht im Changelog:
2003-12-09 Thorsten Kukuk
[...] * lib/check_home.c (check_home): New, check path to home directory.
Also zumindest von SuSE beigetragen.
Du kannst nach der Installation im Verzeichnis /usr/src/packages/SOURCES/pwdutils-2.6.90/src (oder so ähnlich: DAS hier ist auf 9.2) in der Datei useradd.c den entsprechenden Code entfernen.
Auf 9.2 findet die Suche nach check_home bzw. nach "Invalid home directory" die Zeilen:
case 'b': /* for compatibility with shadow useradd. */ case 'd': if (check_home (optarg) == -1) { fprintf (stderr, _("%s: Invalid home directory `%s'.\n"), program, optarg); return E_BAD_ARG; } new_home = optarg; break;
Wenn Du die gesamte if-Abfrage löschst, sollte das alte Verhalten wieder hergestellt sein. Das zweite Vorkommen von "Invalid home directory" scheint sich auf den Default zu beziehen, wo aber witzigerweise kein check_home durchgeführt wird. Deshalb funktioniert dort auch ein /dev/null als HOME Verzeichnis. Sehr inkonsistent, würde ich mal behaupten.
Hi, nach erfolgreichem kompilieren unter SuSE 9.3 wollte ich das Ganze jetzt auf meinem SLES9 mit SP1 nochmal machen. Leider bricht der make bei folgender Meldung ab: [...] then mv -f ".deps/rpasswdd.Tpo" ".deps/rpasswdd.Po"; else rm -f ".deps/rpasswdd.Tpo"; exit 1; fi rpasswdd.c: In function `main': rpasswdd.c:1022: warning: unused variable `slp_timeout' make: *** [rpasswdd.o] Error 1 Weiss vielleicht jemand woran das liegt ? Das configure läuft ohne Probleme durch. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun -------------------------------------
Hi,
nach erfolgreichem kompilieren unter SuSE 9.3 wollte ich das Ganze jetzt auf meinem SLES9 mit SP1 nochmal machen. Leider bricht der make bei folgender Meldung ab:
[...] then mv -f ".deps/rpasswdd.Tpo" ".deps/rpasswdd.Po"; else rm -f ".deps/rpasswdd.Tpo"; exit 1; fi rpasswdd.c: In function `main': rpasswdd.c:1022: warning: unused variable `slp_timeout' make: *** [rpasswdd.o] Error 1
Das ist nur eine "warning", der Fehler muß vorher aufgetreten sein. Such mal nach "error". Thomas Mack
[...] then mv -f ".deps/rpasswdd.Tpo" ".deps/rpasswdd.Po"; else rm -f ".deps/rpasswdd.Tpo"; exit 1; fi rpasswdd.c: In function `main': rpasswdd.c:1022: warning: unused variable `slp_timeout' make: *** [rpasswdd.o] Error 1
Das ist nur eine "warning", der Fehler muß vorher aufgetreten sein. Such mal nach "error". Hi,
gefunden. War ein fehlendes devel-Paket. Danke. -- Regards, Jens Strohschnitter ------------------------------------- *!!!LINUX LINUX LINUX LINUX LINUX!!!* * http://www.jens-strohschnitter.de * ------------------------------------- Set the controls for the heart of the sun -------------------------------------
participants (3)
-
Jens Strohschnitter
-
Steffen Dettmer
-
Thomas Mack