Eine feine Möglichkeit auf einem Linux-Server SFTP-User anzulegen bietet das Tool MySecureShell. Nach der Installation und dem Anpassen einiger Parameter in der Config können neue SFTP-User einfach mit useradd über die Shell angelegt werden. Diese User sind dann im angegeben Home-Verzeichniss eingesperrt und haben keinen Shell-Zugriff.
Auf einem Debian-Etch System erfolgt die Installation wie folgt:
wget wget http://ovh.dl.sourceforge.net/sourceforge/mysecureshell/mysecureshell_[versionsnummer]_i386.deb
dpkg -i mysecureshell_[versionsnummer]_i386.deb
Die Config-Datei ist sehr gut dokumentiert und funktioniert eigentlich sofort. Ich habe meine allerdings noch etwas angepasst:
Config-File im Editor öffnen:
nano /etc/ssh/sftp_config
und ein paar Parameter anpassen:
# Keine Speedlimits fuer SFTP
GlobalDownload 0
GlobalUpload 0
Download 0
Upload 0
# FTP-User im Home-Dir einsperren:
StayAtHome true
VirtualChroot true
#Gleichzeitige Verbindungen pro User etwas erhöhen
LimitConnection 10
LimitConnectionByUser 3
LimitConnectionByIP 3
# Wir wollen nicht das gleiche Home-Verzeichnis für alle User, daher wird diese Zeile auskommentiert:
#Home /home/$USER
# Standard Dateirechte nach Bedarf anpassen:
DefaultRights 0664 0755
MySecureShell neu starten:
/etc/init.d/mysecureshell restart
Nun kann man z.b. einen User anlegen der per SFTP nur auf einen bestimmten Ordner im Web-Verzeichniss zugreifen kann:
useradd -d /var/www/ein_projekt -g www-data -s /bin/MySecureShell marvin
Eine weiteres ausführliches Tutorial zu MySecureShell findet sich unter anderem bei HowtoForge