Wie Sie eine Chroot-Umgebung mit zusätzlichen Befehlen erweitern

Created:

2016-11-16 13:25:14 UTC

Modified:

2017-08-16 16:34:14 UTC

0

Was this article helpful?


Have more questions?

Anfrage einreichen

Wie Sie eine Chroot-Umgebung mit zusätzlichen Befehlen erweitern

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux

Lösung

Die Chroot-Shell bietet eine eingeschränkte Funktionalität. Sie können damit nur sehr einfache Befehle nutzen, wie cp , mv , mkdir, und einige andere. Die tar -Funktion ist hingegen nicht in der Chroot-Shell inbegriffen, genauso wie einige andere Systemdienstprogramme. Die Dienstprogramme, die standardmäßig in der Chroot-Umgebung verfügbar sind, finden Sie in der Verzeichnishierarchie ${HTTPD_VHOSTS_D}/chroot ( HTTPD_VHOSTS_D ist in /etc/psa/psa.conf definiert; in RedHat-basierten Linux Distributionen ist dies /var/www/vhosts ).
Wenn Sie andere Dateien in das "Skelett" der Chroot-Umgebung (welches in jede auf dem Server neu hinzugefügte Domain kopiert wird) aufnehmen wollen, müssen Sie sie in den entsprechenden Unterordner im Verzeichnis ${HTTPD_VHOSTS_D}/chroot einfügen. Vergessen Sie allerdings nicht, auch all Abhängigkeiten zu kopieren, wie z. B. die freigegebenen Bibliotheken, mit denen die ausführbaren Dateien verbunden sind.
Nachdem der Inhalt des Chroot-Skeletts modifiziert ist, wollen Sie die Änderungen vielleicht auf die Chroot-Umgebung für andere bestehende Domains anwenden. Dies können Sie über folgende Befehle tun:
# /usr/local/psa/admin/sbin/chrootmng --remove --source=/var/www/vhosts/chroot --target=${HTTPD_VHOSTS_D}/<domain-name>
# /usr/local/psa/admin/sbin/chrootmng --create --source=/var/www/vhosts/chroot --target=${HTTPD_VHOSTS_D}/<domain-name>
Für die Parallels Plesk Panel Versionen 8.x und 9.x kann --target=all verwendet werden, um alle gehosteten Domains auf einmal zu ändern.

Das Skript recreate_chroot_env aus der Archivdatei im Anhang automatisiert den Prozess. Es nimmt die Namen von Dateien und Verzeichnissen und fügt sie als Parameter zum Chroot-Skelett hinzu:
#./recreate_chroot_env /usr/bin/php /usr/share/zoneinfo

Im oben dargestellten Beispiel wird das Verzeichnis "/usr/share/zoneinfo2 zusammen mit dem PHP-Interpreter hinzugefügt, da dieses Verzeichnis erforderlich ist, damit .php -Dateien richtig ausgeführt werden. Ohne es schlägt "php -i" fehl und es wird die Fehlermeldung " *** glibc detected *** " ausgegeben

Attachments:

Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.