OpenSSH mit sftp-internal
Seit OpenSSH 4.9 ist das sftp-Subsystem endlich Teil des sshd, so dass ein sftp-Login auch ohne Shell funktioniert (Anleitung zur Konfiguration). Jetzt hab ich’s endlich mal getestet und es sieht wirklich praktisch aus. Die vorherige Implementierung mit sftp-server, die zu so Krücken wie scponly führte, hab ich schon immer für einen Design-Fehler gehalten.
Jetzt macht mir nur noch das ebenfalls eingebaute chroot() Probleme, denn das besteht darauf dass das neue root-Verzeichnis nicht vom User beschreibbar ist. Bei Shell-Zugängen gibt es da auch gute Gründe für, aber ohne Shell-Zugang und ohne die Möglichkeit Programme auszuführen würde ich auf diese Prüfung gerne verzichten und die Home-Verzeichnisse als chroot benutzen.
Naja; den Check einfach wegzupatchen wäre sicher wenig sinnvoll. Sieht also so aus als muss ich demnächst in allen Homeverzeichnissen eine Hierarchieebene einfügen (/home/user → /home/user/user); mit der oberen als chroot und der unteren als ‘eigentliches’ $home. Da freue ich mich schon darauf alle Dokus zu überarbeiten und den Usern beizubringen dass sich ihre Pfade ändern… :-/