Wie kann ich Benutzer mit nur Remote-FTP-Zugriff auf Linux-Servern erstellen?

11

Ich verwende einen Ubuntu 10.04 LTS-Server und möchte Benutzer erstellen, die nur über FTP auf den Server zugreifen können.

Was ich bisher gemacht habe ist:

  • Installieren vsftpd
  • Erstellen Sie einen neuen Benutzer mit der Standard-Login-Shell /bin/false

Die normalen Benutzer auf dem Server können alle über FTP auf ihren Basisordner zugreifen, aber die Benutzer, denen der Remote-Shell-Zugriff durch Festlegen entfernt wird, können /bin/falsesich auch nicht über FTP anmelden.

Ich verstehe nicht, wie sich der Shell-Zugriff auf den vsftpdServer auswirkt . Wie kann ich den FTP-Zugriff aktivieren, ohne die Shell erneut zu aktivieren?

Update:
Ich habe diese Referenz gefunden , die besagt, dass ich verwenden sollte /sbin/nologin(scheint /usr/sbin/nologinin Ubuntu zu sein) und dass sie den FTP-Zugriff nicht beeinträchtigen sollte, aber in meinem Fall nicht funktioniert.

jmbouffard
quelle
Möglicherweise
Ich habe vsftpd noch nie verwendet, aber ich habe eine Lösung gefunden , die genau das tut, was Sie brauchen. Ich weiß nicht, ob es die beste Lösung ist (ich denke, es sollte funktionieren, aber vielleicht gibt es etwas Besseres).
pbm
Nur versucht / bin / true und es funktioniert nicht.
jmbouffard
Danke @pbm, aber es ist nicht genau das, wonach ich suche, weil ich lieber echte Benutzer verwenden würde.
jmbouffard

Antworten:

12

Ich weiß nicht, ob es eine gute Praxis ist, meine eigene Frage zu beantworten, aber ich habe eine einfache Lösung gefunden, die die FTP-Anmeldung ermöglicht.

Ich musste die Zeile hinzufügen

/ usr / sbin / nologin

in die Datei / etc / shells. Unmittelbar nach dieser Änderung akzeptierte der FTP-Server die Anmeldung von Benutzern, für die die Shell / usr / sbin / nologin festgelegt ist. Sie können sich also nicht über ssh anmelden, aber es funktioniert mit FTP genau so, wie ich es wollte.

Vielen Dank für Ihre hilfreichen Kommentare.

jmbouffard
quelle
Ich habe vor ein paar Tagen irgendwo gelesen, dass dies eine Sicherheitslücke öffnet. Alle Experten da draußen, die dies für mich klären können.
Navneil
0

Set Benutzer Shell wieder auf /bin/false(oder ein ander ungültig Shell) dann gesetzt /bin/falsein /etc/shells.

Ich sehe ein großes Sicherheitsproblem beim Einstellen /usr/sbin/nologinin /etc/shells. Sie gewähren FTP (und möglicherweise anderen) Zugriff auf alle Daemons und Logins, /usr/sbin/nologinderen Shell.

Jerry Callahan
quelle
1
Wie genau? nologin ist vorhanden, um Nologin zuzulassen - mit einer optionalen benutzerdefinierten Nachricht, /etc/nologin.txtdamit der FTP-Benutzer wissen kann, dass es sich nur um FTP handelt oder um eine solche.
Dani_l
vsftpd schützt vor unbefugtem Zugriff, indem es über eigene Zugriffslisten verfügt.
Dani_l