PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : openssh internal-sftp, symlink-erzeugung verbieten



thechef
10.03.10, 12:21
Ich habe eine OpenSSH installation, die die Gruppe "ftpuser" mittels ForceCommand und "ChrootDirectory" in ein restriktive Umgebung innerhalb eines chroots schickt. Das chroot ist per Benutzer. internal-sftp verwende ich, damit ich nicht jedes Benutzerverzeichnis mit einer kompletten userspace-umgebung ausstatten muss.

Nun ist das Problem, das der Zugriff auch mit Diensten möglich ist, die Symlinks in jedem Fall folgen und wo das leider nicht ausschaltbar ist. Aus diesem Grund möchte ich die Erzeugung von Symlinks für ftpuser unterbinden.

Hat da jemand eine Idee?

Sollte es eine mount-option geben, die es ermöglicht symlink-creation zu unterbinden, wäre das auch in Ordnung, da ich die verschiedenen Benutzer-Verzeichnisse sowieso mit "mount --bind" "zusammenstelle".

Der Dienst, der auf dieselben Verzeichnisse zugreifen kann ist ein kleiner in Java geschriebener Webserver, der auf Klick torrents von Dateien oder Verzeichnissen erstellt (Dazu wird die azureus Bibliothek verwendet). Falls jemand weiss wie man aus Java heraus einen symlink-check machen kann, ohne dass die Applikation plattformabhängig wird (OS Check Kontrollstrukturen gehören zum schlechten Stil, daher möchte ich das eigentlich auch, wenn nur möglich, vermeiden - denkbar wäre höchstens ein plattformunabhängiger symlink-capable-check), wäre das auch gut.

thechef
11.03.10, 19:24
Habe das Problem gelöst in indem ich den symlink call durch error return ersetzt habe im source code von openssh. Also hardkodiert, aber geht.