Getestet unter Debian 12 Bookworm

In diesem Beispiel möchten wir einen Benutzer (genannt “test”) auf einem Linux-System anlegen der nur Dateiübertragungen per SFTP durchführen kann, und das zusätzlich nur innerhalb eines bestimmten Verzeichnisses. Er ist also in diesem Verzeichnis “gefangen” und kann nicht in höher gelegene Verzeichnisse wechseln.

Zuerst fügen wir einen neuen Benutzer hinzu. Dieser braucht keinen Shell-Zugang:

sudo adduser test --shell=/bin/false

Jetzt wird die SSH-Konfigurationsdatei bearbeitet

sudo nano /etc/ssh/sshd_config

Diesen Block (z.B. ganz unten) einfügen:

Match User betestrnd
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        PermitTunnel no
        PasswordAuthentication yes

Der Teil mit “PasswordAuthentication yes” ist ggf. optional, falls ihr ihn schon global gesetzt habt.

SSH-Dienst neu starten:

sudo systemctl restart sshd

Jetzt muss root der Besitzer des Home-Pfads von test werden, sonst gelingt die Anmeldung nicht:

sudo chown root:root /home/test/

sudo chmod 0755 /home/test/

Damit der Benutzer Dateien hoch- und runterladen kann, benötigen wir jetzt noch einen Unterordner:

sudo mkdir /home/test/daten

sudo chown test:test /home/test/daten

Nun kann man sich mit dem Benutzer test mit einem SFTP-Client am Server anmelden. Der Benutzer kann nun Dateien im Ordner “daten” anlegen, aber sein Home-Verzeichnis nicht verlassen.