Problem:
In der chrooted-shell der Kunden-Accounts (soweit freigeschaltet) fehlen leider viele wichtige Befehle wie z.B. wget
, tar
, gzip
, mysql
, u.v.a.
Erklärung:
Die Vorlage für die chrooted-shell liegt im Verzeichnis /var/www/vhosts/chroot/
.
Bei einer neuen Domain wird dieses Verzeichniss als Basis nach /var/www/vhosts/DOMAIN-NAME/
kopiert.
Lösung:
Die Lösung umfaßt auch die Umsetzung für alle bestehenden Domains:
Alle bisherigen Programme müssen erstmal entfernt werden:
/usr/local/psa/admin/sbin/chrootmng --remove --source=/var/www/vhosts/chroot --target=allDie gewünschten Befehle werden jetzt in die Vorlage kopiert:
cp -p /usr/bin/wget /var/www/vhosts/chroot/bin/ cp -p /usr/bin/tar /var/www/vhosts/chroot/bin/ cp -p /bin/gzip /var/www/vhosts/chroot/bin/ cp -p /bin/tar /var/www/vhosts/chroot/bin/ cp -p /usr/bin/mysql /var/www/vhosts/chroot/bin/
Und nun die Vorlage mit den bestehenden Domains synchronisieren:
/usr/local/psa/admin/sbin/chrootmng --create --source=/var/www/vhosts/chroot --target=all
Bemerkung / Übung:
Ab einer höheren Plesk-Version gibt es das Kürzel all
für --target
nicht mehr. Hier muss man umständlich per Hand die Domain eintragen.
Wenn ein Programm eine bestimmte Library nicht finden kann, so wird die selbe Prozedur wie oben mit dem Verzeichnis /var/www/vhosts/chroot/lib/
durchgeführt und erneut synchronisieren.
Es gibt auch Programme (z.B. midnight-commander), die den kompletten Ordner /usr/share/PROGRAMM/ kopiert brauchen. Z.B. beim mc
erhält man sonst einen segmentation fault
.