Moin!
Hallo,
Im Netz hab ich dazu nur CHMOD 644 gefunden. Aber das ist es nicht.
Na? Was macht das? (Falls Du es klein schreibst...)
1 Punkt für "Ausführen",
2 Punkte für "Schreiben"
4 Punkte für "Lesen".
Demnach wäre 600 die Lösung für mein Anliegen.
Tut's aber nicht. Ich krieg die Datei weiterhin angezeigt.
Nein! Das kann nicht die Lösung sein!
Es gibt im wesentlichen zwei Varianten:
Variante A:
Der Apache läuft als user "indianer". Die Datei gehört dem user "weisser_mann". Mit chmod 600 kann der Apache die Datei nicht lesen, aber auch nicht von php lesen lassen. - Deine Forderung ist nicht erfüllt.
Variante B:
Der Apache läuft als user 'webmaster'. Die Datei, die via FTP übertragen wird, gehört dann bei vielen Hostern auch dem user 'webmaster'. PHP-Skripte, die vom Webserver also 'webmaster' gestartet werden, können die Datei lesen - der Apache aber eben auch aussenden.
So gehts also auch nicht: chmod ist nicht Dein Weg!
So zurück zum Apache.
Der hat eine Konfigurationsdatei, deren Einstellungen Du mit einer Datei '.htaccess' für einzelne Verzeichnisse überschreiben darfst- oder eben nicht.
In dieser Konfigurationsdatei gibt es eine standardmäßig files-Direktive. Die verbietet das Ausliefern non allem, was mit '.ht' beginnt. Das soll die Dateien '.htaccess', '.htusers', '.htgroups', '-htpasswd' vor der Auslieferung schützen. Niemand, der nicht morgend mit dem Klammerbeutel gepudert wurde, wird diese Zeile in der httpd.conf löschen.
Also. Benenne Deine 'datei.txt' nach '.ht_datei.txt' um und staune zufrieden. Der Apache wird sie nicht ausliefern, PHO kann aber zugereifen. Wenn php das macht gelten die Regeln des Dateisystems und nicht die des Apache.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch für seriöse Agenturen.