Zunächst sei gesagt, dass FTP und SFTP zwei verschiedene Protokolle sind. SFTP nutzt SSH, wohingegen FTP ein sehr altes Protokoll ist, dessen Konfiguration um einiges komplizierter ist. Generell sollte man heutzutage lieber auf FTP verzichten. Mit HTTP gibt es eine gute Alternative um Dateien im Netzwerk bereitzustellen.
Was du in deinem konkreten Fall suchst, sind chroot jails. Diese bietet OpenSSH an.
Zunächst muss OpenSSH konfiguriert werden unter /etc/ssh/sshd_config:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Das Homeverzeichnis wird als Chroot-Verzeichnis für alle Benutzer der Gruppe sftp gesetzt.
Anschließend wird ein Benutzer für den SFTP-Zugang erzeugt:
addgroup sftp
useradd -m -s /bin/false -G sftp benutzer
passwd benutzer
Sofern der Benutzer bereits existiert, muss dieser der Gruppe hinzugefügt werden:
usermod -G sftp existierender_benutzer
usermod -s /bin/false existierender_benutzer
Zuletzt wird das Homeverzeichnis konfiguriert:
chown root:root /home/benutzer/
chmod 0755 /home/benutzer/
mkdir /home/benutzer/upload
chown benutzer:benutzer /home/benutzer/upload
Weitere Informationen unter: https://adminforge.de/linux-allgemein/openssh/chroot-sftp-mit-openssh-ohne-shell-zugang/