Hinzufügen von Zeigern zu Dateisystemen außerhalb der Chroot-Umgebung - Verwenden von Chroot-SFTP über OpenSSH

8

Ich bin mir ziemlich sicher, dass dies wahr ist, aber ich habe keine spezifisch detaillierte unabhängige Referenz gefunden, die meine Frage direkt beantwortet. Frage ist:

Wie kann ich Zugriff auf eine Ressource hinzufügen, die sich außerhalb der Chroot-Umgebung befindet?

Ich habe chroot SFTP mit der neuen OpenroH-Direktive ChrootDirectory eingerichtet.

Leider kann ich in meiner Umgebung chroot nicht direkt auf das Hauptverzeichnis beschränken, in dem bestimmte Benutzerressourcen gespeichert sind. Also habe ich einen separaten Chroot-Bereich erstellt und verknüpfe die erforderlichen Ressourcen.

Ich habe versucht, Symlinks zu verwenden, um dies zu tun. z.B

ln -s /path/to/resource /chroot/dir/resource

Aber das bekam den Fehler "Verzeichnis konnte nicht kanonisiert nicht gefunden"

Meine Lösung bestand also darin, ein Bind-Mount zu verwenden:

mount --bind /path/to/resource /chroot/dir/resource

Das hat funktioniert.

Eigentlich wollte ich nur eine allgemeine Bestätigung, dass Symlinks nicht funktionieren. Ein Link zu einer guten Referenz, die dies beschreibt, wäre auch schön.

JDS
quelle

Antworten:

7

Sie können keine Symlinks verwenden, das ist wahr. Symbolische Links beziehen sich auf das Stammverzeichnis ( /) und in chroot auf das Stammverzeichnis von chroot, nicht auf das Stammverzeichnis Ihres Dateisystems.

Hier ist die proftpd-Dokumentationsseite , die dasselbe erklärt.

Olli
quelle