Frage SFTP: Datei-Symlinks in einem eingesperrten (chrooted) Verzeichnis


Ich versuche, sftp einzurichten, so dass einige vertrauenswürdige Personen auf einige Dateien zugreifen / bearbeiten / erstellen können. Ich habe einen Benutzer in sein Home-Verzeichnis (/ home / name) gesperrt, aber es ist ein Problem aufgetreten. Ich möchte, dass sie auch auf andere Teile des VPS zugreifen können, weil es auch ein Spiele-Server, Webhost usw. ist, und ich möchte, dass sie die volle Kontrolle über Dateien außerhalb ihres inhaftierten Verzeichnisses haben.

Ich habe versucht, einen Symlink (ln -s) zum gewünschten Verzeichnis zu machen, aber es funktioniert nicht wie erwartet. Ich versuchte (cp -rl) zu den Akten, denen ich Zugang geben wollte und es funktionierte - sie können die Akten in ihrem Verzeichnis redigieren und es ändert das, das außerhalb des Gefängnisses gespeichert wird. ABER sie können keine neuen Dateien erstellen (sie können es aber nicht außerhalb des Gefängnisses aktualisieren). Ich weiß, dass ich das wahrscheinlich nicht "richtig" mache, aber was kann ich tun, um zu tun, was ich will?


18
2017-10-20 02:28


Ursprung




Antworten:


Symlinks sind rein symbolisch: Sie enthalten nur einen Pfad. Wenn Sie also einen Symlink öffnen, liest das Betriebssystem den Pfad und verwendet diesen stattdessen. In einer Chroot-Umgebung zeigen Links (insbesondere solche mit absoluten Pfaden) normalerweise nicht auf denselben Ort, auf den sie in der normalen Umgebung zeigen.

Wenn das Server-Betriebssystem Linux ist, ist es am besten, das gesamte Verzeichnis innerhalb des Chroot-Verzeichnisses zu binden. Wenn Sie dies verwenden, ist es wichtig, daran zu denken, dass dies keine Kopie des Verzeichnisses ist. Alles, was hier gelöscht wird, wird aus dem anderen Verzeichnis entfernt (wichtig, wenn der Benutzer es kann) mv Dateien oder rm -rf). Um dies zu tun:

mount --bind /some/directory /somewhere/else

Die Dateien im Verzeichnis sollten echte Dateien sein. Symlinks hier haben wahrscheinlich die gleichen Probleme, die Sie versuchen, mit den Dateien in erster Linie zu verknüpfen.


34
2017-10-20 02:54



Danke für deine Antwort. Kannst du mir bitte erklären oder auf ein Tutorial hinweisen, wie ich das zum Laufen bringen kann? Ich habe ssh für die Gäste deaktiviert, so dass sie nur sftp Zugang haben. In welcher Datei lege ich diesen Befehl ab? - dukevin
Obwohl es nicht allgemein ratsam ist, könnten Sie auch Verzeichnis-Hardlinks erstellen, was einfacher wäre, aber nur wenn alle Dateien auf demselben Gerät sind. - Falcon Momot
Was ist der Befehl dafür? - dukevin
@KevinDuke Dies ist nichts, was die Benutzer selbst tun können, sondern nur root mount diesen Weg. Möglicherweise gibt es eine Möglichkeit, es anzugeben /etc/fstab also ist es automatisch beim Booten, aber ich bin mir nicht sicher wie - DerfK
Vielen Dank. Ich habe ein paar Tutorials gelesen und herausgefunden. Ihre Antwort hat mir sehr geholfen, in die richtige Richtung zu weisen. Vielen Dank! Für diejenigen, die wissen wollen, haben diese geholfen: aplawrence.com/Linux/Mount_bind.html  freebsd.org/doc/de_DE.ISO8859-1/books/handbook/...  redbottledesign.com ... - dukevin