Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

python in chroot - was kann noch fehlen?

Frage Linux Linux Tools

Mitglied: dis4711

dis4711 (Level 1) - Jetzt verbinden

30.04.2009, aktualisiert 12:35 Uhr, 2886 Aufrufe, 5 Kommentare

Ich bin gerade dabei auf einem Apache/1.3.29 python in einer chroot zu installieren. Da ich dabei anscheinend immer noch das Problem habe, dass Python eine seiner Libraries nicht findet wollte ich testen ob ich Python "einfach manuell" in einer chroot aufrufen kann - dazu habe ich mir folgende "Testschritte" überlegt:

(0) Vorarbeit: python in der chroot installieren

(1) chroot-starten (idealerweise auch gleich als der zukünftige httpd-user)

(2) python aufrufen (und glücklich sein - ab hier würde ich zumindest mal wissen, dass mein problem (vermutlich) httpd.conf bedingt ist - und nicht chroot-bedingt)

(ad 0) Zur Vorarbeit habe ich alle libraries zu python (siehe 'ldd /usr/local/bin/python') in meine chroot-umgebung ('/var/www') kopiert.

01.
$ldd /usr/local/bin/python
lieferte folgende abhängigkeiten:

/usr/local/bin/python
/usr/local/lib/libpython2.5.so.1.0
/usr/lib/libutil.so.11.0
/usr/lib/libstdc++.so.45.0
/usr/lib/libm.so.3.0
/usr/lib/libpthread.so.11.0
/usr/lib/libc.so.48.0
/usr/libexec/ld.so

diese habe ich nach /var/www kopiert. Anschliessend habe ich (sicherheitshalber) alle zugehörigen Libraries mit chown root:www und chmod 775 versehen (mein httpd-user war 'www').

(ad 1 und 2) Den Aufruf hatte ich wie folgt vor...

01.
$ chroot -g www -u www /var/www/ /usr/local/bin/python         
02.
/usr/local/bin/python: can't load library 'libpython2.5.so.1.0'
...dummerweise quittierte der chroot-Aufruf meinen Versuch mit obiger Fehlermeldung. Dh, anscheinend hat ld.so gleich die erste Library nicht gefunden.

Habe ich hier noch etwas übersehen? Ich dachte, dass das Übernehmen der Libraries in mein "zukünftiges root-verzeichnis" und Setzen der Berechtigungen ausreichen sollte?

Die Maschine auf der ich das gerade teste läuft auf OpenBSD 4.4 (stable i386).
Die wenn (sozusagen als "Positiv-Testfall" zu python) "als normaler Benutzer" und ohne chroot python aufrufe, dann habe ich keinerlei LD_Environmentvariablen (oder sonstige Pfade zu den Libraries) die sich auf ld.so auswirken könnten gesetzt.

...ich denke ich übersehe hier etwas ganz Grundlegendes und würde mich über einen Hinweis von Euch freuen - Danke!
Mitglied: 68702
30.04.2009 um 12:46 Uhr
So weit ich weiss, sollte die libpython2.5.so.1.0 in /usr/local/lib/python liegen und nicht in /usr/local/bin/python oder in /var/www/ .
Bitte warten ..
Mitglied: 75823
30.04.2009 um 14:41 Uhr
IMHO, du musst in deinem chroot Umgebung auch die Pfade behalten:

/var/www/usr/local/bin/python
/var/www/usr/local/lib/libpython2.5.so.1.0
.... usw.

Den Befehl bleibt wie vorher:
chroot -g www -u www /var/www/ /usr/local/bin/python
Bitte warten ..
Mitglied: dis4711
30.04.2009 um 15:41 Uhr
@fred - ich bin mir jetzt nicht ganz sicher - aber ich denke, dass Du hier die Fehlermeldung meines 'chroot-versuchs' missverstanden hast, denn libpython2.5.so.1.0 liegt bei mir weder im verzeichnis...

/usr/local/lib/python/ noch im verzeichnis...
/usr/local/bin/python/ sondern in...

/var/www/usr/local/lib/

siehe die folgenden beiden Kommandos:

$pwd
/var/www

$ for I in `ldd /var/www/usr/local/bin/python | grep "lib" | awk '{print $7;}'| cut -b2-100`; do ls -l $I; done
-rwxrwxr-x 1 root www 1261187 Apr 19 22:21 usr/local/lib/libpython2.5.so.1.0*
-rwxrwxr-x 1 root www 181301 Apr 19 22:21 usr/lib/libutil.so.11.0*
-rwxrwxr-x 1 root www 957255 Apr 19 22:22 usr/lib/libstdc++.so.45.0*
-rwxrwxr-x 1 root www 611137 Mar 29 09:12 usr/lib/libm.so.3.0*
-rwxrwxr-x 1 root www 1574948 Apr 19 22:22 usr/lib/libpthread.so.11.0*
-rwxrwxr-x 1 root www 4062336 Mar 29 09:12 usr/lib/libc.so.48.0*
-rwxrwxr-x 1 root www 42813 Mar 29 09:12 usr/libexec/ld.so*

das müsste aber - denke ich - passen, denn auch in (dem chroot zu grunde liegenden Basissystem) liegt die library in
/usr/local/lib/libpython2.5.so.1.0 (genaugenommen liegt dort ein symbolische Link).
Bitte warten ..
Mitglied: dis4711
30.04.2009 um 15:48 Uhr
@75823 - was genau meinst du mit "auch die Pfade behalten"? Wenn du damit meinst, dass ich die entsprechenden Libraries relativ zum "neuen root-Verzeichnis" auch anlegen muss, dann JA - das habe ich getan (siehe mein Posting ganz zu Beginn).

Ich vermute mal, dass ich das oben etwas unklar/ungeshickt formuliert habe. Vielleicht ist es mit einem Beispiel verständlicher... das File

$ pwd
/var/www/

$ find . -name "libpython*so*" 2>/dev/null
./usr/local/lib/libpython2.5.so.1.0

...man beachte den führenden '.' beim gefundenen Dateinamen.
Bitte warten ..
Mitglied: 75823
30.04.2009 um 16:26 Uhr
ich habe das gleiche gemacht was du machen wolltest. Bei mir funktioniert. Hasst du eigentlich /usr/local/bin/python2.5 kopiert oder /usr/local/bin/python ? Das zweite ist nämlich ein Link.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Python
Python - ausgabe formatieren

Frage von BadFsaadKl zum Thema Python ...

Python
gelöst Python requests JSON Objekt + Bild versenden (4)

Frage von nullacht15 zum Thema Python ...

Python
gelöst PHP Skript via Python starten mit JSON Objekt als Parameter (3)

Frage von nullacht15 zum Thema Python ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...