www.ProFTPD.de

ProFTPD => ProFTPD - Deutsch => Thema gestartet von: urban am 21. November 2006, 15:25:16



Titel: Fragen zu Verzeichnisrechten
Beitrag von: urban am 21. November 2006, 15:25:16
Hallo,

ich möchte meine Verzeichnisse nach folgendem Schema anlegen:

RootDir --- TeamDir --- UserHome
                              --- UserHome
            --- TeamDir ---UserHome
                              --- UserHome

Auf dem Filesystem möchte ich meine Rechte nicht ändern sondern nur im FTP. Auch die User sollen zum Teil nur unter FTP existieren.
Allerdings habe ich jetzt das Problem, daß ein Nutzer aus seinem UserHome in jedes andere UserHome springen kann. Und das soll so nicht sein.

Auf meinem alten FTP Server habe ich dieses Problem mit den Rechten im Filesystem des OS umschifft. Aber das muss doch auch anders gehen.

Habt Ihr ein paar Ideen? Welche Möglichkeiten habe ich? Ich habe leider nichts passendes gefunden.

Gruß,
urban


Titel: Re: Fragen zu Verzeichnisrechten
Beitrag von: urban am 21. November 2006, 15:43:33
Ich sollte noch dazu sagen, daß es ein UserHome gibt in das alle Teammitglieder schreiben und lesen dürfen.

Gruß,
urban


Titel: Re: Fragen zu Verzeichnisrechten
Beitrag von: VolGas am 21. November 2006, 17:17:02
Hallo!

Der ProFTPD ist wie eine Usershell zu betrachten: nach dem Einloggen hat der neu gestartete,
individuelle Prozess die selbe User- und Group-ID wie der eingeloggte User - alle Root-Rechte
wurden aufgegeben. Damit hat der ProFTPD nur noch die selben Zugriffsrechte wie der User.
Das kann nicht ausgehebelt oder umgangen, sondern nur weiter ausgebaut werden!

Daher ist Dein Wunsch keine Rechte im FileSystem verwenden zu wollen, nicht machbar.
Virtuelle User sind kein Problem, das funktioniert z.B. mit einem File strukturiert wie /etc/passwd
(mod_file), mySQL & PostgreSQL (mod_sql), cdb, LDAP, etc...

Da es dem FileSystem "egal" ist, ob zu einer bestimmten UID/GID einen entsprechenden User
bzw. Gruppe gibt, kann man beliebige ID's zuweisen - wenn es sein muß, auch jedem User die
selbe. Mit der Direktive "DefaultRoot ~" beamt man jeden User in sein eigenes Home-Verzeichnis
und sperrt ihn damit auch gleichzeitig ein. (Stichwort: chroot)

Macht man das nicht, so kann jeder User im Filesystem "herumspazieren" und sich alles ansehen,
und wird nur durch die jeweiligen Userrechte des Systems zurückgehalten. Möchte man ein weniger
restriktives "chroot", d.h. eines, das Symlinks aus dem Gefängnis als Ausgang zuläßt, gibt es
noch das Modul für die "VRootEngine", das man mit in den ProFTPD hinzucompilieren lassen kann. (siehe ->hier (http://www.proftpd.de/Direktiven.54.0.html#287))
Vorsicht: wenn allerdings der User selbst Symlinks anlegen kann (Stichwort: Scriptsprachen wie
z.B. PHP), dann ist die VRootEngine auch kein Schuß Pulver mehr wert und alles war für die Katz'.

Am besten, Du überlegt Dir eine gute Dateistruktur, benutzt "DefaultRoot" um den User auf den
untersten Level Deines Verzeichnisbaums zu begrenzen und schickst ihn dann mit ->DefaultChdir (http://www.proftpd.de/Direktiven.54.0.html#36)
als Ausgangspunkt in sein eigenes Homeverzeichnis, von dem aus er dann herumwandern kann.

Sonst sehe ich keine andere Möglichkeit das so zu realisieren, wie Du Dir das vorsgestellt hast.
Ich hoffe dennoch, daß ich Dir damit weiterhelfen konnte.

mfg.
  VolGas