Ermöglichen Sie FTP-Benutzern den Zugriff auf Verzeichnisse außerhalb ihres Stammverzeichnisses mithilfe von Symlinks

8

Ich habe versucht, proftpd virtuellen Benutzern mithilfe von Symlinks, die ich über die Konsole als Root erstellt habe, Zugriff auf Verzeichnisse außerhalb ihrer Home-Pfade zu gewähren.

/var/ftp/users/test ist die Heimat des benannten Benutzers test.
/var/ftp/files/documents ist das Verzeichnis, in dem sich die Dokumente befinden, und /var/ftp/users/test/documents der Symlink, der darauf verweist.

Wenn ein Benutzer jedoch eine Verbindung zum FTP herstellt und versucht, dem Symlink zu folgen, wird nur dieser Fehler angezeigt:

documents: No such file or directory

Was mache ich falsch?

Sebastián Grignoli
quelle

Antworten:

21

Symlinks werden genauso wie der Benutzer im Gefängnis gesperrt. Andernfalls könnte der Benutzer mit aus dem Gefängnis ausbrechen cd documents. (Nein, von Root erstellte Symlinks können aus dem gleichen Grund, der cd -P symlink-to-dir; cd ..Sie am falschen Ort zurücklässt, nicht speziell behandelt werden . Das Erscheinungsbild funktioniert erwartungsgemäß und wird von der Shell erzeugt.) Verwenden Sie stattdessen einen Bind-Mount ( mount --bind /var/ftp/files/documents /var/ftp/users/test/documents).

Geekosaurier
quelle
Dies muss jedes Mal erfolgen, wenn der Server neu gestartet wird, oder?
Sebastián Grignoli
1
Ja; Sie werden es in setzen wollen /etc/fstab.
Geekosaurier
7
Nur um anderen zu helfen, hier sind die Quivelants für Mount und Fstab: Mount mount --bind /path/to/original/directory /path/to/mountpoint Fstab /path/to/original/directory /path/to/mountpoint none bind 0 0
Benjamin Kaiser