Hinzufügen von Zeigern zu Dateisystemen außerhalb der chrootierten Umgebung - mithilfe von chrooted SFTP über OpenSSH

7158
JDS

Ich bin mir ziemlich sicher, dass dies stimmt, aber ich habe keine spezifisch detaillierte Referenz gefunden, die meine Frage direkt beantwortet. Frage zu sein:

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

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

Leider kann ich chroot in meiner Umgebung nicht direkt auf das Hauptverzeichnis beschränken, in dem bestimmte Benutzerressourcen leben. Also habe ich einen separaten Chroot-Bereich erstellt und verlinke die benötigten Ressourcen.

Ich habe versucht, Symlinks zu verwenden. z.B

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

Aber das bekam den Fehler "Kann nicht kanonisieren Verzeichnis nicht gefunden"

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

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

Das hat funktioniert.

Ich wollte wirklich nur eine allgemeine Bestätigung, dass Symlinks nicht funktionieren. Ein Link zu einer guten Referenz, die dies beschreibt, wäre auch nett.

8

1 Antwort auf die Frage

7
Olli

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

Hier ist eine Proftpd-Dokumentationsseite, die dasselbe erklärt.