Sven Rautenberg: chmod nur für Datein die dem User gehören???

Beitrag lesen

Moin!

Wenn jetzt Dein Serverbetreiber meint, es sei eine gute Idee per ftp eingehende Dateien einem bestimmten Benutzer zuzuordnen, dann wird er wissen, warum. Vermutlich will er ein Sicherheitsloch vermeiden.

Üblicherweise werden die per FTP hochgeladenen Dateien mit der Userzugehörigkeit auf dem Server abgelegt, mit dem man sich beim FTP-Server eingeloggt hat. Das ist Standardverhalten und keine besondere Eigenschaft des Providers.

Ansonsten: Solange Du user "nobody" bist kannst Du die Dateirechte einstellen. Du brauchts also ein FTP-Programm, welches diese Möglichkeit hat. Versuch es mal mit wsftp(le).

Es braucht kein spezielles FTP-Programm dafür. Man muß sich einfach nur als der entsprechende User einloggen, um die Dateien des entsprechenden Users ändern zu können. Wenn man sich per FTP nicht als nobody einloggen kann, weil man das Passwort dafür nicht hat, dann kann WSFTP auch nichts dran ändern.

Wenn es wsftp nicht kann (arbeitest Du lokal unter windows?), dann wird es halt nicht gehen. Irgendeine Serverdirektive sorgt dafür, daß dieser Dir sofort das Eigentum/die Autorenschaft entzieht.

Nein, daran liegt es nicht.

Eigentümer der Datei wird immer der User, der die Datei anlegt. Wenn man sich über FTP einloggt, startet der FTP-Server einen Subprozess, der die User-ID auf die des eingeloggten Users ändert - damit werden alle Zugriffsbeschränkungen wirksam, die für diesen Account gelten. Hochgeladene Dateien werden von diesem Prozess einfach auf Festplatte geschrieben - unter der User-ID. Logisch, dass man dann die Dateirechte auch mit chmod ändern kann.

Wenn ein Perl-Skript arbeitet, läuft dieses unter einer ganz anderen User-ID. Üblicherweise unter der, die auch der Apache-Server verwendet. Und das ist zum Beispiel der Account "nobody". Wenn das Perl-Skript jetzt Dateien anlegt, gehören sie "nobody". Logisch, dass nur das Perl-Skript diese Dateien chmodden darf. CHMOD darf nur der Besitzer anwenden - ansonsten wäre es problemlos möglich, dass man sich auch für Dateien, die man nicht selbst besitzt, Leserechte verschaffen kann.

Das Perl-Skript kann allerdings nicht nur die Rechte mit chmod ändern, sondern auch den Besitzer mit chown umändern - wenn der Besitzer auf den FTP-Account verändert wird, kann man mit FTP die Rechte ändern.

Und sei es nur um z.B. einem Virenscanner die Möglichkeit zu verschaffen, die Datei zu lesen und ggf. zu löschen oder um Skripte erst zu lesen und dann freizugeben - oder eben um zu verhindern, daß Kunden, die für den Service nicht zahlen CGI's benutzen. Ich kann nur spekulieren.

Wilde, blödsinnige Spekulation - weils nicht so ist.

- Sven Rautenberg

--
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)