Ich habe dem System über das adduser
Tool einen Benutzer hinzugefügt . Dann habe /etc/passwd
ich versucht, das /bin/bash
zu /sbin/nologin
oder zu ändern /dev/null
, aber keines davon hat funktioniert.
Ich möchte, dass der Benutzer nicht die Möglichkeit hat, eine interaktive Shell zu erhalten und diese nur zu verwenden sftp
. Gibt es einen Weg?
Ich weiß, dass es hier schon einmal gefragt wurde, aber es scheint, dass niemand eine zufriedenstellende Antwort gegeben hat.
Antworten:
Der Befehl, den Sie zum Ändern der Shell verwenden sollten, lautet chsh . Die Nologin-Shell kann
/sbin/nologin
oder sein/usr/sbin/nologin
(überprüfen Sie, welche Sie haben, indem Sie hineinschauen/etc/shells
),/bin/false
wäre aber wahrscheinlich eine bessere Wahl.Sie sollten in Betracht ziehen, so etwas wie scponly einzurichten, das genau das tut, was Sie wollen.
quelle
/bin/false
und/bin/nologin
sind tatsächlich verfügbar in/etc/shells
!nologin
in/etc/shells
! serverfault.com/a/328424Sie sollten dies auch mit OpenSSH 4.9 und höher tun können, mit dem Sie den Benutzer zusätzlich chrooten können, um die Sicherheit zu erhöhen.
In Ihrem
/etc/ssh/sshd_config
:Dann renne:
Der Benutzer kann nur in / home / user / uploads schreiben.
https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory
quelle
Ich denke, der beste Weg ist mit mysecureshell
http://mysecureshell.sourceforge.net/en/index.html
Sie können einen Benutzer mit dieser Funktion einfach chrooten und bei Bedarf sogar die Bandbreite begrenzen.
quelle
Sie können einen Benutzer mit hinzufügen
-s /bin/false
, um dessen Shell zu deaktivieren, aber was Sie wirklich in die Einrichtung einbeziehen sollten, ist ein chrooted sftp-Konto. Dies wird einen Benutzer in sein eigenes Verzeichnis "einsperren" und ihn daran hindern, auf Dateien oder Verzeichnisse außerhalb des Chroot-Verzeichnisses zuzugreifen oder diese zu ändern.quelle