PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache(php) und rechte



snowbear
17.04.03, 14:51
Hi, ich habe mir auf meinem rechner LAMP nach der anleitung von DJEddy installiert.
Laeuft auch alles super.

Jetzt habe ich eine frage, ich moechte mit php eine Datei erstellen, und in diese datei reinschreiben, so eine art counter, wenn die datei nicht exestiert, dann wird sie erstellt und es werden sachen rein geschrieben.

Wie setze ich am beste die Datei rechte fuer mein htdocs verzeichnis ? und kann ich diese rechte ruhig auf das ganze verzeichnis legen, oder soll ich lieber ein extra php verzeichnis machen ???

mbo
17.04.03, 15:01
merkwürdige frage, aber vielleicht hab ich sie auch falsch verstanden.

die rechte von php im htdocs richtet sich nach den rechten des apache-verzeichnis.

und wenn die seiten generell generiert werden sollen, dann würd ich es eh im unterverzeichnis machen.

bsp: du benutzt index.php. jetzt kommt einer und erstellt (die noch nicht existierende index.html) und schwubs, ist deine startseite weg (sofern du die httpd.conf nicht angepaßt hast)

denkanstoß oder bin ich völlig daneben?

snowbear
17.04.03, 15:12
naja auf dem server soll nur meine page laufen, und ich wollte nur *.php und keine *.html dateien benutzen.
Wenn ich meinem script sage, es soll eine datei generieren, fals sie nicht da ist, dann kommt "Permission denied" und auch wenn sie da ist und es soll was rein schreiben.

also ist es besser ein scripte verzeichnis zu machen, und dort die ganzen script rein die etwas schreiben ?
was muss ich dann fuer rechte dem ordner geben ?

mbo
17.04.03, 15:35
die rechte vom webserver

ls -la /verzeichnis

snowbear
17.04.03, 15:41
also meine Dateien habe ich auf "chmod 755" stehen, damit jetzt ein anderer das script starten kann und das dann etwas in eine datei schreibt muessen die rechte auf "chmod 775" stehen oder ?

mbo
17.04.03, 15:42
was sagt denn ls -la in dem verzeichnis?

snowbear
17.04.03, 16:05
ls -la gibt aus

-rw-r--r-- 1 root www-data 11 Apr 17 16:03 count.txt
-rw-r--r-- 1 root www-data 241 Apr 13 16:03 counter.php

mbo
17.04.03, 16:15
eben ... läuft dein apache als root?
in dem fall mußt du entweder chmod 775 setzen oder mit chown dem apache die eigentumsrechte zuweisen

snowbear
17.04.03, 16:24
Also wie gesagt, ich habe LAMP so installiert wie unter

http://www.linuxforen.de/forums/showthread.php?s=&threadid=74990

beschrieben, da ich sowas vorher noch nicht gemacht habe :).

ist das schlecht, wenn ich es als root laufen lasse ???

OK aber danke das mit dem chmod 775 das geht jetzt :)

mbo
17.04.03, 16:29
ich bezweifle, daß er als root läuft ;)
und ja, daß wäre schlecht :)
ein prozess sollte nach möglichkeit nur die rechte haben, die er benötigt.

snowbear
17.04.03, 16:39
Original geschrieben von mbo
ich bezweifle, daß er als root läuft ;)
und ja, daß wäre schlecht :)
ein prozess sollte nach möglichkeit nur die rechte haben, die er benötigt.

hmm jetzt bringst du mich durcheinander :)

ob ich apache als root laufen habe oder nicht, gebe ich in der httpd.conf datei ein oder ????

da habe ich stehe

User nobody

genau wie bei meinem ftp server.

und wenn ich "ps U root" eingebe, steht da auch nichts von apache

Also habe ich die prozesse nicht als root laufen richtig ?

Doh!
17.04.03, 16:43
gib mal in der konsole ein:

ps aux | grep httpd

mbo
17.04.03, 16:47
die rechte waren doch

-rw-r--r-- 1 root www-data 11 Apr 17 16:03 count.txt
-rw-r--r-- 1 root www-data 241 Apr 13 16:03 counter.php

eigentümer ist root und gehört zur gruppe www-data

-rw-r--r--
|-------------file (bei verzeichnis stände da d)
|------------read für eigentümer (ja)
|----------write für eigentümer (ja)
|---------ausführen für eigentümer (nein)
|-------read für gruppen (ja)
|-----write für gruppe (nein)

etc
etc

wenn du jetzt dem apache-user die eigentumsrechte gibst, kannst du auch mit 700 alles machen

Doh!
17.04.03, 16:52
Original geschrieben von mbo
ich bezweifle, daß er als root läuft ;)
und ja, daß wäre schlecht :)
ein prozess sollte nach möglichkeit nur die rechte haben, die er benötigt.

Naja, wenn Du Apache auf einem Port unnerhalb von 1024 laufen hast, musste ihn ja als root starten, musst nur dafür sorgen, dass die child-prozesse halt auf nobody stehen und das hat er ja, dann isses auch ok

snowbear
17.04.03, 17:02
so jetzt nochmal kurz absichern, ob ich alles richtig gemacht habe, dann bin ich dann auch fertig :)

so ich habe jetzt in /usr/local/lamp/apache/current/htdocs$ chown nobody.nogroup * -Rv;chmod 700 *
eingegeben, da ich ja in der httpd.con als user= nobody und als group= nogroup eingegeben habe.
so dann zeigt ls -la jetzt

-rwx------ 1 nobody nogroup 39 Apr 17 16:52 count.txt
-rwx------ 1 nobody nogroup 241 Apr 17 16:03 counter.php

und es geht auch :)

das ist aber jetzt in ordnung oder ?


also dann vielen dank das dumir geholfen hast!

Doh!
18.04.03, 11:03
Jo is in Ordnung, auch nicht unsicher, allerdings macht es bei nobody:nogroup (ich hoffe Dein "." war nur ein Tippfehler!) keinen Unterschied, ob Du nun ne Maske von 700 oder 777 hast.