chroot per jailkit - User Webverzeichnis link

stefkey

Member
Hallo, ich habe nun mal ein jailkit installiert. Hat prima geklappt nach dieser Anleitung: https://www.howtoforge.com/debian-wheezy-jail-jailkit ergänzt durch https://www.howtoforge.com/community/threads/jailkit-on-debian-jessie.69942/

Nun würde ich gerne dem User auch das Webverzeichnis zugänglich machen damit er dort dann zB mit tar arbeiten könnte. Oder eine horde installation über die Konsole ausführen kann usw.

Im Moment sieht der User nur: bin, dev, etc, home, lib, lib64, usr

Wie bekomme ich hier noch /var/www/xyz rein?

Kann mir dazu jemand etwas sagen?
 
Wenn ich die jailkit-Seite richtig verstanden habe, dann ist jailkit im Prinzip nichts anderes als ein paar Tools, die dir die Arbeit bei einer chroot-Umgebung einfacher machen.
Es ist aber "nur" eine chroot-Umgebung, die Verzeichnisse und Dateien, die darin liegen, wurde beim Erstellen entweder dort rein kopiert oder Hardlinks auf die Dateien (nicht Verzeichnisse) erstellt. Zusätzliche Tools lassen sich über jailkit im chroot bereitstellen.
Den Inhalt von /var/www/xyz kannst du nicht so einfach bereitstellen. Hardlinks können nicht auf Verzeichnisse, sondern nur auf Dateien zeigen und mit Softlinks kann man nicht aus dem Jail ausbrechen.
Du hast zwei Möglichkeiten:
1. Die chroot-Umgebung in /var/www/xyz erstellen - dann kann der User auf alles darunter zugrefien, oder
2. Den Inhalt von /var/www/xyz in die vorhandene chroot-Umgebung verschieben und im Webserver und ggfl. FTP-Server die Konfiguration auf das neue Verzeichnis anpassen.
 
Waoh, super! Danke sehr.
zu 1.: klappt nicht, da dieses jailkit irgendwie immer das Verzeichnis jail braucht. Ich müsste dann zB so verschieben: /var/www/jail/...
Gefällt mir aber nicht.

zu 2.: ich nehme lieber die Version 3

zu 3.: klappt wunderbar, hier nochmals mit Erklärung falls es mal jemand hier im Forum auch sucht: etwa indem Mitte der Seite speziell für jailkit: http://unix.stackexchange.com/questions/198590/what-is-a-bind-mount

Nun wollte ich mit dem neuen User ein php script starten. Geht aber nicht, es heißt /usr/bin/env: php: No such file or directory

Was kann ich tun? Kopieren von /usr/bin/php hat nicht gereicht. Bei /usr/bin/env ging es.

Kann da jemand etwas zu sagen?
 
Innerhalb des Jail ist vermutlich PATH (und andere wichtige ENV-Variablen) nicht richtig beziehungsweise gar nicht gesetzt.
 
Ist das klasse! Danke sehr. Macht echt Laune!

Ich habe in die /etc/jailkit/jk_init.ini folgendes ergänzt:
Code:
[php]
comment = the php interpreter and libraries
executables = /usr/bin/php
directories = /usr/lib/php, /usr/share/php, /usr/share/php7.0-bz2, /usr/share/php7.0-curl, /usr/share/php7.0-gd, /usr/share/php7.0-intl, /usr/share/php7.0-json, /usr/share/php7.0-mysql, /usr/share/php7.0-opcache, /usr/share/readline, /et$
includesections = env

[env]
comment = environment variables
executables = /usr/bin/env

dann noch ein
jk_init -c /etc/jailkit/jk_init.ini -f -k -j /jail mysql

Und voila: php -v zeigt etwas an beim gechrooteten User.

---

Jetzt wollte ich ein script ausführen welches auf die DB zugreifen will. Und nun fehlt mir der Zugriff zur DB. Das zeigt es an:
An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory

Na ganz einfach:
/etc/jailkit/jk_init.ini
die [xterm] Geschichte entkommentiert und
und noch ein jk_init -c /etc/jailkit/jk_init.ini -f -k -j /jail xterm

Hier gab es dann ein 2 Probleme mit /dev/pts/3, /dev/pts/4,
Code:
Traceback (most recent call last):
  File "/usr/sbin/jk_init", line 247, in <module>
    main()
  File "/usr/sbin/jk_init", line 244, in main
    activateConfig(config, jail, args)
  File "/usr/sbin/jk_init", line 162, in activateConfig
    ji.handle_cfg_section(config,jail,cfg,section)
  File "/usr/sbin/jk_init", line 147, in handle_cfg_section
    jk_lib.copy_device(chroot,tmp,config['verbose'])
  File "/usr/share/jailkit/jk_lib.py", line 552, in copy_device
    sb = os.stat(path)
OSError: [Errno 2] No such file or directory: '/dev/pts/4'

Das habe ich dann einfach gelöst aus dem [xterm]-Teil in der /etc/jailkit/jk_init.ini und dann lief jk_init -c /etc/jailkit/jk_init.ini -f -k -j /jail xterm fehlerfrei durch

Aaaber: bash: xterm: command not found

Und nu?
 
keine Ergänzung:
Der Fehler wo ich nicht mehr weiter weiß ist eher dieser hier:
/usr/bin$ mysql
'xterm': unknown terminal type.
 
Deine Umgebungsvariable TERM dürfte auf xterm stehen, das solltest du ggfl. ändern (ich habe sie auf linux gesetzt, das harmoniert bei mir sehr gut mit Putty).
 
hi danton, danke.

Aber wie ändere ich diese denn für den gechrooteten Benutzer?
Und ist das was du sagst relevant dafür wenn der gechrootete Benutzer den Befehl mysql mit folgender Meldung quittiert bekommt:
'xterm': unknown terminal type.
 
Back
Top