N'abend.
Ich habe vsftpd als FTP-Server installiert und möchte eigentlich nur einen Benutzer einrichten, der per FTP auf sein Home-Verzeichnis /home/maxmustermann und /var/www komplett zugreifen können soll. Alles andere soll tabu für ihn sein. Irgendwie krieg ich das aber nicht so gebacken. Ich stehe vor diesen Problemen:
(1.) ich muss zwangsweise einen Unix-account für maxmustermann erstellen, sonst funktioniert der FTP-Login nicht. Festgestellt habe ich auch, dass für den erstellten User den ich mit "adduser" erstellte auch zwingend das Login funktionieren muss. Nutze ich /bin/false als shell, oder locke den Unix-Account, kann sich dieser Benutzer nicht über FTP einloggen.
Die relevanten settings in der /etc/vsftpd.conf :
anonymous_enable=NO
local_enable=YES
pam_service_name=vsftpd
# Hier definiere ich die Userliste, wer auf den FTP-Server zugreifen darf.
userlist_enable=yes
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
die /etc/vsftpd.userlist sieht so aus:
maxmustermann
Kann ich trotzdem irgendwie erreichen, dass sich maxmustermann nie über die shell am System einloggen dürfte, erst recht nicht über ssh ?
(2.) Wie ich ja bereits erklärte, soll maxmustermann nur auf sein Home-Verzeichniss aber auch auf /var/www zugreifen können. Ich wüßte nicht, wie ich das lösen könnte. Momentan habe ich deshalb den User erstmal an sein Homeverzeichnis gefesselt, damit er da niemals rausdarf. Das erziele ich mit dem Wert 'chroot_local_user=YES' in der vsftpd.conf. Wie soll ich ihm aber jetzt den Zugang zu /var/www gewähren? Evtl. über 'nen Softlink? geht das überhaupt oder mache ich irgendwas kaputt?
FTP-Benutzer muss auch als Linux-Benutzer existieren
- pangu
- Beiträge: 1400
- Registriert: 15.11.2011 20:50:52
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: /proc/1
FTP-Benutzer muss auch als Linux-Benutzer existieren
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.
Re: FTP-Benutzer muss auch als Linux-Benutzer existieren
Dein Problem wird eigentlich in einem der Beispiele, die bei vsftpd dabei sind behandelt. Lies dir doch mal folgendes durch:
/usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README
Da sind auch entsprechende Schnippsel fuer PAM usw. dabei.
/usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README
Da sind auch entsprechende Schnippsel fuer PAM usw. dabei.
- pangu
- Beiträge: 1400
- Registriert: 15.11.2011 20:50:52
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: /proc/1
Re: FTP-Benutzer muss auch als Linux-Benutzer existieren
Mensch, diese examples kannte ich gar nicht. Danke für diesen Hinweis. Habe nun virtual users erstellt und per-user configuration angewendet.
Danke nochmals.
Danke nochmals.
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.
- Simmel
- Beiträge: 698
- Registriert: 08.03.2004 14:43:43
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Düsseldorf
-
Kontaktdaten:
Re: FTP-Benutzer muss auch als Linux-Benutzer existieren
pangu hat geschrieben:N'abend.
Ich habe vsftpd als FTP-Server installiert und möchte eigentlich nur einen Benutzer einrichten, der per FTP auf sein Home-Verzeichnis /home/maxmustermann und /var/www komplett zugreifen können soll. Alles andere soll tabu für ihn sein. Irgendwie krieg ich das aber nicht so gebacken. Ich stehe vor diesen Problemen:
(1.) ich muss zwangsweise einen Unix-account für maxmustermann erstellen, sonst funktioniert der FTP-Login nicht. Festgestellt habe ich auch, dass für den erstellten User den ich mit "adduser" erstellte auch zwingend das Login funktionieren muss. Nutze ich /bin/false als shell, oder locke den Unix-Account, kann sich dieser Benutzer nicht über FTP einloggen.
Die relevanten settings in der /etc/vsftpd.conf :
anonymous_enable=NO
local_enable=YES
pam_service_name=vsftpd
# Hier definiere ich die Userliste, wer auf den FTP-Server zugreifen darf.
userlist_enable=yes
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
die /etc/vsftpd.userlist sieht so aus:
maxmustermann
Kann ich trotzdem irgendwie erreichen, dass sich maxmustermann nie über die shell am System einloggen dürfte, erst recht nicht über ssh ?
(2.) Wie ich ja bereits erklärte, soll maxmustermann nur auf sein Home-Verzeichniss aber auch auf /var/www zugreifen können. Ich wüßte nicht, wie ich das lösen könnte. Momentan habe ich deshalb den User erstmal an sein Homeverzeichnis gefesselt, damit er da niemals rausdarf. Das erziele ich mit dem Wert 'chroot_local_user=YES' in der vsftpd.conf. Wie soll ich ihm aber jetzt den Zugang zu /var/www gewähren? Evtl. über 'nen Softlink? geht das überhaupt oder mache ich irgendwas kaputt?
Du hast zwar eine Lösung,a ber ich denke mir vll. helfen dir meine Antworten auch noch etwas.
Damit ein User sich nicht am System anmelden kann einfach die /bin/bash gegen /bin/false tauschen in der /etc/passwd, dann kann sich der User nicht mehr per ssh anmelden
Damit der User auch Dateien anlegen und bearbeiten kann die auf dem Webserver "laufen, kannst du den User mit in die Webserver-Gruppe aufnehmen, das ist kein Problem.
Ein Symlink macht nichts kaputt und funktioniert prima, solange du es im Webserver richtig konfigurierst (follow symlink). Dann kannst du einfach den Teil des Home-Verzeichnisses, der auf dem Webserver gezeigt wird mit symlink verlinken mach /var/www, das Verzeichnis in dem der Apache operiert.
Grüße,
s1mmel
you've got to know how far to go in going too far
perl -le'print+(split//,"schaeuble")[6,8,7,3,5,0..2,4]'
http://creativecommons.org/licenses/by-nc-sa/2.0/
perl -le'print+(split//,"schaeuble")[6,8,7,3,5,0..2,4]'
http://creativecommons.org/licenses/by-nc-sa/2.0/
Re: FTP-Benutzer muss auch als Linux-Benutzer existieren
Genauer und für die Nachwelt: Er kann sich bei /bin/false gar nicht mehr anmelden, auch nicht per su oder login, also lokal. Für lokal, aber nicht SSH wäre die sshd_config der richtige Ansprechparter. Die Einschränkung auf scp könnte man mit mit /bin/scponly einstellen.Simmel hat geschrieben:Damit ein User sich nicht am System anmelden kann einfach die /bin/bash gegen /bin/false tauschen in der /etc/passwd, dann kann sich der User nicht mehr per ssh anmelden
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier