Ich habe ein VSFTPD-Setup, bei dem Benutzer in ihren Home-Verzeichnissen chrooten. Standardkram. Dies erfordert jedoch, dass alle ihre Home-Verzeichnisse für sie nicht beschreibbar sind (um Sicherheitsprobleme zu vermeiden). Kein Problem, wenn sie Dateien hochladen möchten, können sie diese in einen beschreibbaren Ordner hochladen.innerhalbihr Chroot.
Aber jetzt müssen sie jedes Mal in diesen Ordner wechseln, um ihren Upload durchzuführen. Wenn ich die Option local_root in der VSFTPD-Konfigurationsdatei verwende, um ihren Standardanmeldeort in diesen beschreibbaren Ordner zu verschieben, dannDaswird zu ihrem Chroot, und wir sind wieder am Anfang: Es kann nicht beschreibbar sein.
Meine Frage lautet: Wie kann ich den Standardspeicherort, an dem VSFTPD Benutzer ablegt, in ein beschreibbares Verzeichnis innerhalb ihres Chroot-Jails verschieben, ohne das Chroot-Verzeichnis selbst beschreibbar zu machen?
Antwort1
Dies kann mit vsftpd nur auf eine Weise erfolgen, und die Pfade müssen in der Systempasswortdatei festgelegt werden. Pfade können nicht in der Datei vsftpd.conf festgelegt werden.
Legen Sie in der Datei /etc/vsftpd.conf die folgenden beiden Optionen fest:
chroot_local_user=JA
passwd_chroot_enable=JA
Sie müssen auch das Unix-Home-Verzeichnis des Benutzers ändern, um anzugeben, wo sich das Chroot-Jail befindet. Das Stammverzeichnis des Chroot-Jails befindet sich im Pfad links vom /./
Home-Verzeichnispfad. ie /ftphome/./home/user/
würde das Chroot-Jail auf setzen /ftphome/
und innerhalb des Jails wäre das Benutzerverzeichnis home/user
. Sie können dies tun, indem Sie Folgendes ausführen:
sudo usermod -d /ftphome/./home/user/ user
Natürlich sollten das Chroot-Verzeichnis und die darin enthaltenen Benutzerverzeichnisse gemäß der normalen Chroot-Vorbereitung eingerichtet werden.