Lösung 1:
Der Befehl, den Sie verwenden sollten, um die Shell zu ändern, ist chsh . Die Nologin-Shell kann /sbin/nologin
sein oder /usr/sbin/nologin
(überprüfen Sie, welche Sie haben, indem Sie in /etc/shells
nachsehen ), aber /bin/false
wäre wahrscheinlich die bessere Wahl.
chsh -s /bin/false user
Sie sollten erwägen, so etwas wie scponly einzurichten die genau das tun, was Sie wollen.
Lösung 2:
Sie sollten dies auch mit OpenSSH 4.9 und höher tun können, mit dem Sie den Benutzer für erhöhte Sicherheit zusätzlich chrooten können.
In Ihrem /etc/ssh/sshd_config
:
Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no
Führen Sie dann Folgendes aus:
chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads
Der Benutzer kann nur in /home/user/uploads schreiben.
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
Lösung 3:
Ich denke, der beste Weg ist mit mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
Sie können einen Benutzer damit einfach chrooten und bei Bedarf sogar die Bandbreite begrenzen.