CHMOD für versch. Dateien - Wann welches?
TigerDE2
- webserver
0 Vinzenz0 Christian Kruse0 Cheatah0 Michi
Hi!
Ich hab' ein Paar Fragen zum CHMOD-Befehl.
Für das Betriebssystem (wohl im "Normal-"/Offlinebetrieb) gilt ja, das Owner die Rechte der Person, die die Datei angelegt hat, Group die Rechte einer Gruppe und World die Rechte des Rests der Welt darstellt, oder?
Wenn ich jetzt r--rw-rwx gesetzt habe, hat dann der Owner trotzdem Execute-Rechte?
Und, was mich eigentlich interessiert:
Wie sieht das im Netz aus, wer steckt da hinter den Gruppennahmen?
Und was für ein CHMOD muß ich z.B. für
* ein PHP-Script setzen, damit ich es ausführen kann (via Webbrowser)?
* eine Datei setzten, die ein PHP Script (a) öffnen und lesen (b) schreiben, der normale Surfer aber nicht sehen soll?
/me hat leider fast garkeine Ahnung von CHMOD. :-/
Danke für Eure Hilfe. :)
gruß
Christian
Hallo
Für das Betriebssystem (wohl im "Normal-"/Offlinebetrieb) gilt ja, das Owner die Rechte der Person, die die Datei angelegt hat, Group die Rechte einer Gruppe und World die Rechte des Rests der Welt darstellt, oder?
ist so
Wenn ich jetzt r--rw-rwx gesetzt habe, hat dann der Owner trotzdem Execute-Rechte?
nein
Wie sieht das im Netz aus, wer steckt da hinter den Gruppennahmen?
Die Gruppe, die da steht...
Und was für ein CHMOD muß ich z.B. für
* ein PHP-Script setzen, damit ich es ausführen kann (via Webbrowser)?
Hängt davon ab, ob CGI oder Modul
* eine Datei setzten, die ein PHP Script (a) öffnen und lesen (b) schreiben, der normale Surfer aber nicht sehen soll?
Verstecken, außerhalb des Dokumentbaums, oder
Zugriff einschränken mit .htaccess (bei Apache)
Gruss,
Vinzenz
Danke an alle... ;)
Noch ne Frage:
Warum brauchen dann die meisten Scripts chmod 755, wenn der Webserver und der Surfer praktisch in der selben "Schublade" liegen?
Würde da nicht sowas wie chmod 700 oder 050 oder 005 reichen?
(Oder hab' ich da was falsch verstanden?)
Und wie bekommt man das hin, dass z.B. ein Apache-Server ein "Forbidden" zurückgibt, ohne dass nach einem Passwort o.ä. gefragt wurde?
gruß
Christian
P.S.: Ich hab' leider nur via FTP "Zugriff" auf einen Webspaceaccount (mit PERL, PHP & Co.), kann von daher leider nichts ausserhalb des "Zugriffbereichs (HTTP)" ablegen... (hmmm, etwas um die Ecke formuliert... :) )
Hi TigerDE2,
Warum brauchen dann die meisten Scripts chmod 755, wenn der Webserver und der Surfer praktisch in der selben "Schublade" liegen?
weil der Webserver und derjenige, der die Seiten via FTP hochlädt, _nicht_ in derselben Schublade liegen.
Und wie bekommt man das hin, dass z.B. ein Apache-Server ein "Forbidden" zurückgibt, ohne dass nach einem Passwort o.ä. gefragt wurde?
Wann genau? Mehr Details, bitte.
P.S.: Ich hab' leider nur via FTP "Zugriff" auf einen Webspaceaccount (mit PERL, PHP & Co.),
Ich auch.
kann von daher leider nichts ausserhalb des "Zugriffbereichs (HTTP)" ablegen... (hmmm, etwas um die Ecke formuliert... :) )
Ist Dein FTP-Wurzelverzeichnis wirklich identisch mit dem Verzeichnis, in dem die Wurzel Deines Webseiten-Baums liegt? Bei mir nicht ... überdenke, ob Du beim richtigen Provider bist.
Viele Grüße
Michael
Hallo TigerDE2,
Wenn ich jetzt r--rw-rwx gesetzt habe, hat dann der Owner
trotzdem Execute-Rechte?
Nein. Auch sehr einfach nachzupruefen:
ckruse@rain:~/dev/www/selfforum $ chmod 007 template_gen.pl
ckruse@rain:~/dev/www/selfforum $ ./template_gen.pl
bash: ./template_gen.pl: Permission denied
ckruse@rain:~/dev/www/selfforum $
Und, was mich eigentlich interessiert:
Wie sieht das im Netz aus, wer steckt da hinter den
Gruppennahmen?
Wie meinst du das?
Und was für ein CHMOD muß ich z.B. für
* ein PHP-Script setzen, damit ich es ausführen kann (via
Webbrowser)?
Das kommt auf die PHP-Konfiguration an. Benutzt du PHP als
Executable (also nicht als Modul), dann muss es fuer den
Webserver ausfuehrbar sein. Benutzt du es als Modul, ist es
abhaengig von der Konfiguration: ist eingestellt, dass das
Script das x-Bit haben muss, dann muss das Script fuer den
Webserver ausfuehrbar sein. Ansonsten muss es nur lesbar
sein.
* eine Datei setzten, die ein PHP Script (a) öffnen und
lesen (b) schreiben, der normale Surfer aber nicht sehen
soll?
Diese Datei wirst du anders schuetzen muessen (beispielsweise
ueber HTTP Authentification). Das Script laeuft mit
Webserver-Rechten, die Datei muss also +rw fuer den
Webserver-User haben. Und damit ist sie auch von anderen
einsehbar.
Gruesse,
CK
Hi,
Für das Betriebssystem (wohl im "Normal-"/Offlinebetrieb) gilt ja, das Owner die Rechte der Person, die die Datei angelegt hat, Group die Rechte einer Gruppe und World die Rechte des Rests der Welt darstellt, oder?
ja. Wobei es nicht von Bedeutung ist, wer die Datei _angelegt_ hat - mittels chown
lässt sich Owner und Group festlegen.
Wenn ich jetzt r--rw-rwx gesetzt habe, hat dann der Owner trotzdem Execute-Rechte?
Nein.
Wie sieht das im Netz aus, wer steckt da hinter den Gruppennahmen?
Finde heraus, unter welchem User- und Gruppennamen der Webserver läuft. Meist liefert Dir
ps auxw | grep httpd
den Usernamen (erste Spalte); im Zweifel frage denjenigen, der den Server konfiguriert hat.
Und was für ein CHMOD muß ich z.B. für
Nebenbei: chmod
wird kleingeschrieben. Unter Unix ist die Groß- und Kleinschreibung relevant.
* ein PHP-Script setzen, damit ich es ausführen kann (via Webbrowser)?
Nicht Du führst das Script aus, sondern der Webserver. Also muss dieser es mindestens lesen können. AFAIK wird ein PHP-Script nicht direkt ausgeführt; aber das x-Bit ist sicher nicht falsch.
* eine Datei setzten, die ein PHP Script (a) öffnen und lesen (b) schreiben, der normale Surfer aber nicht sehen soll?
Der normale Surfer _ist_ das PHP-Script, denn er kontaktiert den Webserver, und _nur dieser_ fasst das Script an. Die Datei auch, deswegen müssen die Rechte identisch sein.
Per Server-Konfiguration lassen sich HTTP-Anfragen beliebig limitieren, Du kannst also direkte Zugriffe auf eine Ressource unterbinden. Das PHP-Script merkt hiervon nichts, da es auf eine Datei zugreift, nicht auf eine Ressource, so dass die Serverkonfiguration uninteressant ist. Das eigentliche Problem ist aber, dass
Dateien, die nicht direkt per HTTP zugänglich sein sollen, im per HTTP zugänglichen Bereich nichts verloren haben.
Lege diese Datei also außerhalb des Dateibaums ab, der durch eine URL abgebildet werden kann. Jedwede Rechte-Limitierung wäre der falsche Weg.
Cheatah
hello! nur ein kleiner tipp! schau mal unter www.jex-treme.de da suchst dir glaub ich bei php chmod aus und da hast eine relativ gute erklärung! lg