Forumvsftp – Unterschiedliche User, unterschiedliche Verzeichnisse
Florian Pitz – Sonntag, 15. Juni 2008 11:02 Uhr

Hallo zusammen,

ich hab folgendes vor: Ich möchte, dass sich mehrere User auf dem ftp-Server (per vsftpd, OpenSuse 10.3) einloggen können und unterschiedliche Verzeichnisse sehen können. Ein kurzer Beispiel:
Verzeichnissstruktur:
\Flo
\Dani
\Cornelia
\Konrad
\Allgemein
\Fotos

Wenn sich Cornelia einloggt, soll das Verzeichniss beim ftp-Server folgendermaßen aussehen:
\Cornelia
\Allgemein
\Fotos

Bei Konrad soll es vielleicht nur
\Konrad
\Fotos
sein

Er reicht mir auch wenn man nur Zugriff auf seine Verzeichnisse hat, und die anderen abgelehnt werden. Es sollte aber auch nicht so sein, dass man sich durch verschiedene Pfade klicken müssen. Ich bin froh, dass sie verstanden haben wie man einen ftp-Client benutzt.

Danke und Grüße

Flo

2 Antworten
Ulf B. – Sonntag, 15. Juni 2008 19:33 Uhr

Hi Flo,

meiner Ansicht nach ist FTP nicht so geeignet um so etwas umzusetzen. Deshalb meine erste Frage, gibt es einen Grund, weshalb Du gerade das unsichere und auch umständlich zu bedienende FTP vorgesehen hast?

Außerdem interessiert mich, mit welchen Programm(en) Deine Benutzer auf diese zugreifen (unter welchen OS)?

Hast Du eine Benutzerverwaltung (Passwörter) vorgesehen oder sind alle Verzeichnisse offen?

Ciao
Ulf

Daniel Arnold – Dienstag, 17. Juni 2008 00:57 Uhr

Zuerst kleiner Stilhinweis. Unter Unix werden Verzeichnisse mit / getrennt.

Ohne es selber ausprobiert zu haben mach folgendes:

Zuerst legst du auf dem Opensuse (bspw. mit Yast), die Benutzer flo, dani,
cornelia und konrad an. Du wirst danach folgende Ordnerstruktur finden:

/home
|–> /cornelia
|–> /dani
|–> /flo
|–> /konrad

Diese sind die sogenannten Heimatverzeichnisse (home directories) der
jeweiligen Benutzer. Standardmäßig darf jeder Benutzer nur in sein eigenes
Heimatverzeichnis schreiben, aber die der anderen lesen.

Damit ein Benutzer nicht die Heimatverzeichnisse der anderen lesen kann musst
du für jeden dieser Ordner die Lese- und Ausführrechte (und eventuelle
Schreibrechte) für die Gruppe und alle anderen entfernen. Gib also als Root im
Ordner /home (also nach “cd /home”) folgendes ein (vergewisser dich vorher
dass du im richtigen Order bist):

chmod go-rwx *

Jetzt legst du die Ordner “allgemein” und “fotos” in “/home” mittels “mkdir
$Ordnername” an (“$Ordnername” bitte jeweils ersetzen ;-). Danach machst du
für beide Ordner jeweils:

chgrp users $Ordnername
chmod g+rwx $Ordnername

Danach gehören die beiden Ordner den existierenden Benutzern (Benutzergruppe
“users”) und können von ihnen uneingeschränkt gelesen und beschrieben werden.

Die Hilfe zu vsftpd [1] verrät mir (ohne, dass ich es ausprobiert habe, also
keine Gewähr), dass du in /etc/vsftpd.conf folgende Einstellungen setzen
musst:

anonymous_enable = no
local_enable = yes
local_root = /home

Starte danach vstfpd neu (entweder über den Yast oder
mittels “/etc/init.d/vsftpd restart” oder so ähnlich) und alles sollte
funktionieren und die Ordnerstruktur, wie sie dir vorschwebt sollten die
Benutzer nach einem Login per ftp zu Gesicht bekommen. Evtl. Musst du noch in
der Suse-Firewall (ebenfalls im Yast zu finden) FTP erlauben, damit der Login
per ftp klappt.

P.S.: Die Benutzer werden zwar sehen, dass es da Benutzerverzeichnisse anderer
Benutzer gibt, aber sie kommen nicht rein. Das jetzt so zu deichseln, dass die
die nicht sehen ist ein bisschen Aufwand zu erklären und ist in meinen Augen
vernachlässigbar und obendrein praktisch, wenn ein Benutzer mal eben einem
anderen erlaubt möchte sein Heimatverzeichnis zu lesen…

Viel Spaß.

[1] http://vsftpd.beasts.org/vsftpd_conf.html