![]() ![]() |
Sie sind hier: TeilnehmerInnen > cfrick's Home > Zope 2.7 in einem chroot()-environment unter GNU/Linux installieren. Zope 2.7 in einem chroot()-environment unter GNU/Linux installieren.diese schritte beschreiben die installation unter Gentoo Linux 1.4 fuer ppc. entsprechend koennen sich unter anderen distributionen abhaengigkeiten und verzeichnisnamen abweichend verhalten. diese anleitung richtet sich an personen, die mit der administration eines unixoiden systems vertraut sind und somit sich selbst ihren teil denken, wenn etwas nicht so vorgefunden wird, wie beschrieben. Voraussetzungenfolgende dinge, werden fuer diese schritte vorausgesetzt:
Datensammlunggrundlage der installation ist das verzeichnis: /var/Zope dieses directory wird die neue root fuer Zope. Systemin seinem laufenden system legt man den user zope in der gruppe zope an. dieser user wird verwendet, um dann die Zope instanz unter dieser UID laufen zu lassen - sie muss also entsprechend an die lokalen voraussetzungen angepasst werden. wird im folgenden von kopieren gesprochen ist ein cp -a gemeint, der die rechte und user/group informationen auf das kopierte file anwendet. folgende verzeichnisse werden in dem chroot-environment angelegt als root: etc bin var usr usr/bin usr/lib opt in das neue etc kopiert man aus etc folgende dateien: passwd groups ld.so.conf aus passwd loescht man alle eintraege bis auf root und zope; das selbe macht man mit groups. in das neue bin kopiert man aus bin folgende dateien: sh ldconfig in libraries werden das neue lib kopiert man folgende dateien: ld libc libcrypt libdl libm libnss_files libpthread libutil libz das bedeutet, die entsprechend aktuelle library wird kopiert sowie die entsprechenden symlinks runter auf die allgemeinen versionen. fuer python wird dann noch bei gcc3 systemen das verzeichnis /usr/lib/gcc-lib umkopiert. hier muss man gegebenenfalls die kopierten dateien auf das notwendigste beschraenken. z.b. also nur: /usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.2.3 bis auf dieses verzeichnis loescht man nun aus der neuen etc/ld.so.conf alle directories raus. Pythonnach usr/bin geht: /usr/bin/python2.3 es wird dananch ein symlink auf diese datei gelegt mit dem namen python. nach usr/lib kommt: /usr/lib/libpython2.3.so /usr/lib/libpython2.3.so.1.0 /usr/lib/python2.3 danach kann man einen chroot auf das "neue" system machen und dort einmal: ldconfig danach kann man etc/ld.so.conf und bin/ldconfig aus dem chroot directory loeschen. Zopedas ganze installierte zope wird von z.b. /opt/Zope-2.7 nach opt in das chroot environment kopiert. man legt nun unter var/zope eine neue instanz an. in dem generierten zope.conf setzt man bei allen ports, auf denen zope listenen soll diese auf 0.0.0.0:port - also z.b.:
will man direkt den command line chroot verwenden, muss den effective-user setzen - und zwar auf zope; weiter unten ist beschrieben, wie man auch direkt zope mit dem user zope starten kann. sowohl in der zope.conf als auch in runzope muss man nun alle verzeichnisse so anpassen, dass sie absolut sind wenn zope im chroot laeuft. das heisst alle /var/Zope entfernen. Checkhat alles soweit geklappt, sollte die hierarchie etwa so aussehen: opt opt/Zope-2.7 opt/Zope-2.7/... usr usr/bin usr/bin/python2.3 usr/bin/python usr/lib usr/lib/python2.3 usr/lib/python2.3/... usr/lib/gcc-lib usr/lib/gcc-lib/powerpc-unknown-linux-gnu usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.2.3 usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.2.3/... usr/lib/libpython2.3.so usr/lib/libpython2.3.so.1.0 bin bin/sh var var/zope var/zope/Extensions var/zope/bin var/zope/bin/zopectl var/zope/bin/runzope var/zope/bin/zopeservice.py var/zope/var var/zope/var/Data.fs.tmp var/zope/var/Data.fs var/zope/var/Data.fs.lock var/zope/var/Data.fs.index var/zope/var/Z2.pid var/zope/var/Z2.lock var/zope/import var/zope/etc var/zope/etc/zope.conf var/zope/Products var/zope/log var/zope/log/Z2.log var/zope/log/event.log lib lib/libc-2.3.2.so lib/libutil.so.1 lib/libnss_files-2.3.2.so lib/libz.so lib/libdl.so.2 lib/libutil-2.3.2.so lib/libpthread.so.0 lib/libz.so.1 lib/libpthread-0.10.so lib/libnss_files.so.2 lib/libc.so.6 lib/libm.so.6 lib/libcrypt.so.1 lib/ld-2.3.2.so lib/ld.so.1 lib/libcrypt-2.3.2.so lib/libm-2.3.2.so lib/libdl-2.3.2.so lib/libz.so.1.2.1 etc etc/ld.so.cache etc/passwd etc/group Startsollte jetzt alles passen kann man das zope per chroot befehl starten: chroot /var/Zope /var/zope/bin/runzope fehlen noch libraries, findet man diese am einfachten mit dem befehl ldd auf dem entsprechenden binary. zum ablegen der root privilegien bereits zum starten des prozesses kann folgedes programm dienen (der chroot und setuid auf zope wird darin ausgefuehrt und somit verliert dieser und alle kind prozesse sofort die root privilegien: chrootsu /var/Zope zope /var/zope/bin/runzope Makefile: chrootsu:chrootsu.c $(CC) -Wall -Werror -pedantic -ansi -D_BSD_SOURCE -o $@ $< chrootsu.c: /* * Copyright (C) 2004 Christoph Frick Geschrieben von cfrick . Letzte �nderung 24.02.2004 20:51. |