chroot-Problem bei uid/gid-Auflösung
Hallo zusammen. Nach langem Kampf habe ich nun aufgegeben und hoffe hier auf Hilfe. Die weiten der Mailing-Listen und des Internets brachten leider nicht die gewünschten Informationen (oder ich bin zu blöd zu suchen). Wie dem auch sei. Folgende Situation: -> Neu aufgesetzter Server mit openSUSE 10.2 -> funktioniert soweit tadellos. -> Neue chroot-Umgebung zusammengebaut, sagen wir mal in /home/chroot Soweit so gut. Die Programme innendrin laufen tadellos, bash, ls usw. alles will prinzipiell, wie ich will. Mein Problem ist nur, dass es sich partut weigert, die uids und gids aufzulösen. Wenn ich also beispielsweise im chroot gefangen bin und "ls -l" eintippe, gibt er ein hübsches Verzeichnislisting aus. Aus User/Group "root" wird eine hübsche "0" (irgendwie logisch). Auch andere werden nicht aufgelöst. Einige Progrämmchen, die eine korrekte Auflösung benötigen, meckern ebenfalls. Unter anderem meckert der apache, da er User und Group für seine Kinderchens nicht auflösen kann (was er aber können sollte und außerhalb des chroots logischerweise kann). Der Verdacht liegt nahe, dass die passwd und Konsorten nicht stimmen. Sollten sie aber. Auch eine direkte Verlinkung mit der Original-Datei bringt keinerlei Erfolge. Erst wenn ich lib, etc, bin und usr komplett, also als Verzeichnis in mein chroot verlinke, läuft es korrekt. Logischerweise hilft mir das nicht weiter und ist irgendwie sinnfrei. Kann mir jemand helfen bzw. den Schubser in die richtige Richtung geben? Was brauche ich alles in etc, damit er die vermaledeite passwd und group akzeptiert? Bitte nicht erklären, wie ich den apache dazu bringe, die Situation zu akzeptieren. Ich will viel mehr verstehen, was ich falsch mache... Ein Vergleich mit älteren Referenzservern brachte nur das Ergebnis, dass ich bisher immer nur "passwd", "group" im etc des chroot hatte. Und halt Sachen, die für das Problem eigentlich unwichtig sind, wie beispielsweise "resolv.conf" und "hosts". useradd innerhalb des chroot meckert übrigens ebenfalls. Die Fehlermeldung habe ich aber aktuell leider nicht parat. Sollte sie vonnöten sein, reiche ich sie nach. Grüße aus Karlsruhe Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Dienstag, 15. Mai 2007 09:39 schrieb martin@eisengardt.de:
(...). Der Verdacht liegt nahe, dass die passwd und Konsorten nicht stimmen. Sollten sie aber. Auch eine direkte Verlinkung mit der Original-Datei bringt keinerlei Erfolge. Erst wenn ich lib, etc, bin und usr komplett, also als Verzeichnis in mein chroot verlinke, läuft es korrekt. Logischerweise hilft mir das nicht weiter und ist irgendwie sinnfrei. (...).
So auf Anhieb fällt mir da auch nichts ein. Was du IIRC noch einfach prüfen kannst ist, ob und wenn ja welche Dateien dir im chroot-jail fehlen: Starte die Programme mal mit strace. Also so ungefähr wie in http://olivier.sessink.nl/jailkit/howtos_debug_jails.html http://talby.csu.umist.ac.uk/~isd/_unix_security/unix_security_intro.9.html beschrieben. Gruß Jan -- Humpty Dumpty was pushed. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Die, 15 Mai 2007, martin@eisengardt.de schrieb:
Der Verdacht liegt nahe, dass die passwd und Konsorten nicht stimmen. Sollten sie aber. Auch eine direkte Verlinkung mit der Original-Datei bringt keinerlei Erfolge. Erst wenn ich lib, etc, bin und usr komplett, also als Verzeichnis in mein chroot verlinke, läuft es korrekt. Logischerweise hilft mir das nicht weiter und ist irgendwie sinnfrei.
Kann mir jemand helfen bzw. den Schubser in die richtige Richtung geben? Was brauche ich alles in etc, damit er die vermaledeite passwd und group akzeptiert?
Der Grund ist vermutlich libnss* / PAM. Du brauchst im chroot für Pam: /lib/libpam*, /lib/security/, sowie die relevanten Dateien aus /etc/pam.d/ Und für die Namensauflösung (gethost* Funktionen) aus /lib IIRC: libc.so, ld-*.so, ld-linux.so, libnss* die libnss* eben auch dann, wenn die von 'ldd' nicht angeführt werden. Alles gerate, trotzdem HTH, -dnh -- Ich habe das Gefühl, dass dem DiskDruid der Zaubertrank gestohlen wurde und der so verrückt partitoniert bzw. Mountpoints zuordnet, dass man den bis auf weiteres besser in eine Ausnüchterungszelle steckt. Für professionelle / komplexe Partionierung ist das Ding nicht zu gebrauchen. -- Al Bogner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tue, May 15, 2007 at 09:39:31AM +0200, martin@eisengardt.de wrote:
Der Verdacht liegt nahe, dass die passwd und Konsorten nicht stimmen. Sollten sie aber. Auch eine direkte Verlinkung mit der Original-Datei bringt keinerlei Erfolge. Erst wenn ich lib, etc, bin und usr komplett, also als Verzeichnis in mein chroot verlinke, läuft es korrekt.
Bitte erlaeutere noch "verlinke". Meinem Verstaendnis nach will man sowas kopieren.
Kann mir jemand helfen bzw. den Schubser in die richtige Richtung geben?
libnss_files.so
Ein Vergleich mit älteren Referenzservern brachte nur das Ergebnis, dass ich bisher immer nur "passwd", "group" im etc des chroot hatte. Und halt Sachen, die für das Problem eigentlich unwichtig sind, wie beispielsweise "resolv.conf" und "hosts".
Auch an /etc/nsswitch.conf und die anderen Sachen aus 'info "(libc)NSS Basics"'ff. gedacht? Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Bitte erlaeutere noch "verlinke". Meinem Verstaendnis nach will man sowas kopieren.
Da hast du Recht. Logischerweise will man das kopieren.
Kann mir jemand helfen bzw. den Schubser in die richtige Richtung geben?
libnss_files.so
Danke. Nun gehts. :-) strace zeigte mir hinterher auch, wieso. ldd gab mir die so nicht aus, weil die erst verzögert geladen wird. Und wenn die nicht da ist, gibt es keine Fehler aus, sondern löst die Benutzernamen einfach nicht auf.
Auch an /etc/nsswitch.conf und die anderen Sachen aus 'info "(libc)NSS Basics"'ff. gedacht? Zu a) nein. Aber nun weiss ich, wofür die gut ist. Auf meinen Referenzsystemen gibt es die halt noch nicht.
Grüße Martin. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wed, May 16, 2007 at 10:40:14AM +0200, martin@eisengardt.de wrote:
Bitte erlaeutere noch "verlinke". Meinem Verstaendnis nach will man sowas kopieren.
Da hast du Recht. Logischerweise will man das kopieren.
Es gibt da ein paar Spezis die per hardlinking ein paar Megabyte Festplattenspeicher sparen wollen. Ich wollte nur sicherstellen das du diese Sicherheitsluecke nicht aufreisst.
Kann mir jemand helfen bzw. den Schubser in die richtige Richtung geben?
libnss_files.so
Danke. Nun gehts. :-) strace zeigte mir hinterher auch, wieso. ldd gab mir die so nicht aus, weil die erst verzögert geladen wird.
Die wird IIRC per dl() aus einer der libc-Funktionen nachgeladen. Dass ist meist auch der Grund warum man Programme nicht mehr nur statisch linken kann. Alles was name resolutions braucht, egal ob hosts oder gid/uid, ist ein dynamisch gelinktes Programm. Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
David Haller
-
Jan Ritzerfeld
-
martin@eisengardt.de
-
Peter Wiersig