Sorry, dass ich mal in den alten Thread schreibe aber ich vermute, das dürfte den einen oder anderen auch interessieren und die Sache war ja nicht abschließend beantwortet.
Wenn man einen Benutzer über das Web anlegt, ihm Shell Access gibt und dann diesen Nutzer auf sftponly festnagelt, kann dieser nichts machen, außer SFTP. Auf das Web Interface bekommt er keinen Zugriff und eine Shell hat er ja dann effektiv auch nicht. Das Gesagte bezüglich Ownership des Home-Verzeichnisses des Nutzers gilt weiterhin. Einziges Problem: wenn man den Nutzer über das Web Interface irgendwie bearbeitet, werden die Verzeichnisberechtigungen zurückgesetzt (also auch z.B. beim Setzen eines Passwortes).
Da ich nichts davon halte, in den pfSense- eigenen Dateien herumzupfuschen, da ich auch mal ein Update installieren will oder das System aus einem Backup wiederherstellen können will, habe ich folgende Vorgehensweise gewählt:
Nutzer über das Web anlegen
Nutzer die Permission Shell Access geben
/etc/sshd_extra anlegen:
Match User sftpbackup
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
shellcmd, alternativ cronjob anlegen:
/usr/sbin/chown root /home/sftpbackup
-rsa schluessel im authorized_keys file ablegen.
-die sshd_extra config im Config-Backup berücksichtigen.
Funktioniert soweit einwandfrei.
HTH