Recent Changes - Search:

PmWiki (deutsch) für die Liste aller Seiten


Englisch:

PmWiki

pmwiki.org

edit SideBar

https://www.jetphotos.com/photographer/598301 https://www.jetphotos.com/photographer/598304 https://www.jetphotos.com/photographer/598305 https://www.jetphotos.com/photographer/598307 https://www.jetphotos.com/photographer/598310 https://www.jetphotos.com/photographer/598312 https://www.jetphotos.com/photographer/598317 https://www.jetphotos.com/photographer/598318 https://www.jetphotos.com/photographer/598320 https://www.jetphotos.com/photographer/598321 https://www.jetphotos.com/photographer/598322 https://www.jetphotos.com/photographer/598324 https://www.jetphotos.com/photographer/598328 https://www.jetphotos.com/photographer/598340 https://www.jetphotos.com/photographer/598341 https://www.jetphotos.com/photographer/598346 https://www.jetphotos.com/photographer/598349 https://www.jetphotos.com/photographer/598357 https://www.jetphotos.com/photographer/598366 https://www.jetphotos.com/photographer/598372 https://www.jetphotos.com/photographer/598374 https://www.jetphotos.com/photographer/598378 https://www.jetphotos.com/photographer/600028 https://www.jetphotos.com/photographer/600031 https://www.jetphotos.com/photographer/600032 https://www.jetphotos.com/photographer/600034 https://www.jetphotos.com/photographer/600036 https://www.jetphotos.com/photographer/600037 https://www.jetphotos.com/photographer/600039 https://www.jetphotos.com/photographer/600041 https://www.jetphotos.com/photographer/600042 https://www.jetphotos.com/photographer/600045 https://www.jetphotos.com/photographer/600046 https://www.jetphotos.com/photographer/600047 https://www.jetphotos.com/photographer/600048 https://www.jetphotos.com/photographer/600050 https://www.jetphotos.com/photographer/600051 https://www.jetphotos.com/photographer/600052 https://www.jetphotos.com/photographer/600053 https://www.jetphotos.com/photographer/600055 https://www.jetphotos.com/photographer/600057 https://www.jetphotos.com/photographer/600641 https://www.jetphotos.com/photographer/600644 https://www.jetphotos.com/photographer/600645 https://www.jetphotos.com/photographer/600646 https://www.jetphotos.com/photographer/602231 https://www.jetphotos.com/photographer/602240 https://www.jetphotos.com/photographer/602244 https://www.jetphotos.com/photographer/602247 https://www.jetphotos.com/photographer/602261 https://www.jetphotos.com/photographer/602265 https://www.jetphotos.com/photographer/602279 https://www.jetphotos.com/photographer/602307 https://www.jetphotos.com/photographer/602315 https://www.jetphotos.com/photographer/602323 https://www.jetphotos.com/photographer/602340 https://www.jetphotos.com/photographer/602346 https://www.jetphotos.com/photographer/602741 https://www.jetphotos.com/photographer/602743 https://www.jetphotos.com/photographer/602744 https://www.jetphotos.com/photographer/602745 https://www.jetphotos.com/photographer/602746 https://www.jetphotos.com/photographer/602748 https://www.jetphotos.com/photographer/602749 https://www.jetphotos.com/photographer/602750 https://www.jetphotos.com/photographer/602757 https://www.jetphotos.com/photographer/602758 https://www.jetphotos.com/photographer/602762 https://www.jetphotos.com/photographer/602763 https://www.jetphotos.com/photographer/602764 https://www.jetphotos.com/photographer/602769 https://www.jetphotos.com/photographer/602770 https://www.jetphotos.com/photographer/602772 https://www.jetphotos.com/photographer/602773 https://www.jetphotos.com/photographer/602774 https://www.jetphotos.com/photographer/602775 https://www.jetphotos.com/photographer/601186 https://www.jetphotos.com/photographer/601188 https://www.jetphotos.com/photographer/601189 https://www.jetphotos.com/photographer/601191 https://www.jetphotos.com/photographer/601192 https://www.jetphotos.com/photographer/601194 https://www.jetphotos.com/photographer/601196 https://www.jetphotos.com/photographer/601197 https://www.jetphotos.com/photographer/601248 https://www.jetphotos.com/photographer/601249 https://www.jetphotos.com/photographer/601250 https://www.jetphotos.com/photographer/601251 https://www.jetphotos.com/photographer/601252 https://www.jetphotos.com/photographer/601254 https://www.jetphotos.com/photographer/601255 https://www.jetphotos.com/photographer/601256 https://www.jetphotos.com/photographer/601258 https://www.jetphotos.com/photographer/601260 https://www.jetphotos.com/photographer/601261 https://www.jetphotos.com/photographer/601263 https://www.jetphotos.com/photographer/601264 https://www.jetphotos.com/photographer/601265 https://www.jetphotos.com/photographer/601266 https://www.jetphotos.com/photographer/601267 https://www.jetphotos.com/photographer/601268 https://www.jetphotos.com/photographer/601269 https://www.jetphotos.com/photographer/601270 https://www.jetphotos.com/photographer/601272 https://www.jetphotos.com/photographer/601273 https://www.jetphotos.com/photographer/602779 https://www.jetphotos.com/photographer/602780 https://www.jetphotos.com/photographer/602781 https://www.jetphotos.com/photographer/602782 https://www.jetphotos.com/photographer/600111 https://www.jetphotos.com/photographer/600112 https://www.jetphotos.com/photographer/600148 https://www.jetphotos.com/photographer/600151 https://www.jetphotos.com/photographer/600155 https://www.jetphotos.com/photographer/600157 https://www.jetphotos.com/photographer/600159 https://www.jetphotos.com/photographer/600161 https://www.jetphotos.com/photographer/600163 https://www.jetphotos.com/photographer/600647 https://www.jetphotos.com/photographer/600648 https://www.jetphotos.com/photographer/600649 https://www.jetphotos.com/photographer/600650 https://www.jetphotos.com/photographer/602889 https://www.jetphotos.com/photographer/602890 https://www.jetphotos.com/photographer/602891 https://www.jetphotos.com/photographer/602895 https://www.jetphotos.com/photographer/602897 https://www.jetphotos.com/photographer/602900 https://www.jetphotos.com/photographer/602904 https://www.jetphotos.com/photographer/602907 https://www.jetphotos.com/photographer/602913 https://www.jetphotos.com/photographer/602916 https://www.jetphotos.com/photographer/602918 https://www.jetphotos.com/photographer/602922 https://www.jetphotos.com/photographer/602923 https://www.jetphotos.com/photographer/602925 https://www.jetphotos.com/photographer/602926 https://www.jetphotos.com/photographer/600534 https://www.jetphotos.com/photographer/600535 https://www.jetphotos.com/photographer/600536 https://www.jetphotos.com/photographer/600538 https://www.jetphotos.com/photographer/600539 https://www.jetphotos.com/photographer/600540 https://www.jetphotos.com/photographer/600542 https://www.jetphotos.com/photographer/600543 https://www.jetphotos.com/photographer/600544 https://www.jetphotos.com/photographer/600547 https://www.jetphotos.com/photographer/600548 https://www.jetphotos.com/photographer/600549 https://www.jetphotos.com/photographer/600550 https://www.jetphotos.com/photographer/600552 https://www.jetphotos.com/photographer/600553 https://www.jetphotos.com/photographer/600555 https://www.jetphotos.com/photographer/600558 https://www.jetphotos.com/photographer/600565 https://www.jetphotos.com/photographer/600566 https://www.jetphotos.com/photographer/600567 https://www.jetphotos.com/photographer/600568 https://www.jetphotos.com/photographer/600571 https://www.jetphotos.com/photographer/600573 https://www.jetphotos.com/photographer/600575 https://www.jetphotos.com/photographer/600576 https://www.jetphotos.com/photographer/600577 https://www.jetphotos.com/photographer/600578 https://www.jetphotos.com/photographer/600666 https://www.jetphotos.com/photographer/600668 https://www.jetphotos.com/photographer/600669 https://www.jetphotos.com/photographer/600670 https://www.jetphotos.com/photographer/602963 https://www.jetphotos.com/photographer/601276 https://www.jetphotos.com/photographer/601280 https://www.jetphotos.com/photographer/601281 https://www.jetphotos.com/photographer/601284 https://www.jetphotos.com/photographer/601285 https://www.jetphotos.com/photographer/601286 https://www.jetphotos.com/photographer/601287 https://www.jetphotos.com/photographer/601288 https://www.jetphotos.com/photographer/601291 https://www.jetphotos.com/photographer/601293 https://www.jetphotos.com/photographer/602776 https://www.jetphotos.com/photographer/602777 https://www.jetphotos.com/photographer/602955 https://www.jetphotos.com/photographer/602956 https://www.jetphotos.com/photographer/602957 https://www.jetphotos.com/photographer/602959 https://www.jetphotos.com/photographer/602960 https://www.jetphotos.com/photographer/602961

Dateirechte

für die Liste aller Seiten

Administratoren

Diese Seite beschreibt kurz PmWikis Einstellungen für Datei- und Verzeichnisrechte in einer typischen Unix-Umgebung.

Einfache Installation (out of the box)

Sehen wir uns zunächst PmWiki ohne irgend ein geladenes Kochbuchrezept an. PmWiki muss in der Lage sein,

  • in das wiki.d/-Verzeichnis zu schreiben, um Seiten zu speichern,
  • in das uploads/-Verzeichnis zu schreiben, um Uploads zu speichern.

Das sind die *einzigen* Verzeichnisse, in die der Webserver schreiben können muss. Es ist für PmWiki egal, wer diese Verzeichnisse erzeugt oder besitzt, solange es Schreibrechte darin erhält.

Alles Andere sollte dem Besitzer des Accounts gehören und vom Webserver-Account gelesen werden können (aber normalerweise nicht für den Webserver-Account beschreibbar sein).

Das war's – alles andere hängt von der spezifischen PHP-Konfiguration und -Laufzeitumgebung ab, die weiter unten detailierter beschrieben wird (und die der Grund ist dafür, dass es nicht die definitive Antwort gibt, die auf alle Situationen passt). Aber die obigen zwei Regeln sind absolut und decken 95% der Fragen zu den Dateirechten ab.

Auf einem Unix-Host läuft der Webserver typischerweise mit einer 'userid' und 'groupid', die von der des Besitzers des Accounts verschieden ist. So ist in Standardinstallationen die 'userid' gewöhnlich so etwas wie "nobody", "apache", "www" oder "httpd". Deshalb erzeugt der Besitzer des Accounts in einer Standardinstallation die Verzeichnisse wiki.d/ und uploads/ von Hand und setzt die Rechte der Verzeichnisse auf beschreibbar für jedermann, damit PmWiki (das unter dem Webserver-Account läuft) in der Lage ist, dort Dateien anzulegen.

$ pwd
/home/pmichaud/public_html/pmwiki
$ mkdir uploads
$ mkdir wiki.d
$ chmod 777 uploads wiki.d        
$ ls -ld . uploads wiki.d
drwxr-xr-x   12 pmichaud pmichaud     1024 Feb 10 11:51 .         
drwxrwxrwx    8 pmichaud pmichaud     1024 Jan 23 11:58 uploads             
drwxrwxrwx    2 pmichaud pmichaud    54272 Feb 10 15:29 wiki.d      

Vermeiden von für jedermann beschreibbaren Verzeichnissen

Dennoch mögen viele Leute diese Einstellung mit Schreibrechten für jedermann (******rwx) nicht. Die einzige praktikable Möglichkeit, diese Schreibrechte für jedermann zu eliminieren, ist, den Webserver und den Besitzer des Accounts zum 'owner' und zur 'group' der Verzeichnisse und der Dateien darin zu machen. Da Unix einem Nicht-Superuser eigentlich nicht erlaubt, die 'owner' von Verzeichnissen und Dateien zu ändern, die schon existieren, müssen wir sicherstellen, dass sie mit den passenden Besitzverhältnissen von Anfang an erzeugt werden.

Damit die Verzeichnisse dem Webserver-Account gehören, lassen wir PmWiki sich um das Erzeugen der Verzeichnisse kümmern. Das heißt, wir vergeben vorübergehend Schreibrechte für das Elternverzeichnis und starten dann PmWiki, so dass es die Verzeichnisse anlegt. Außerdem möchten wir, dass die neu erzeugten Verzeichnisse die gleiche Gruppe haben wie der Besitzer des Accounts, damit er Dateien dieser Verzeichnisse entfernen oder manipulieren kann. Darum benutzen wir Unix' setgid-Fähigkeiten (2777 oder '***rws***'-Rechte), damit alle neu erzeugten Dateien die Gruppenrechte vom Verzeichnis erben.

Um Verzeichnisse mit Schreibrechten für jedermann zu vermeiden, benutzen Sie die folgenden Anweisungen anstatt der obigen Beschreibung. Wenn Sie die Verzeichnisse wiki.d/ und uploads/ bereits angelegt haben, benutzen Sie 'chown' und 'chmod', um die folgenden Resultate zu erreichen.

$ pwd
/home/pmichaud/public_html/pmwiki
$ chmod 2777 .  
$ ls -ld .
drwxrwsrwx  10 pmichaud pmichaud 4096 May 28 09:55 .
# <-- execute pmwiki.php script from web browser -->
$ ls -ld . uploads wiki.d
drwxrwsrwx  10 pmichaud pmichaud 4096 May 28 09:55 .
drwxrwsr-x   2 nobody   pmichaud 4096 May 28 09:55 uploads
drwxrwsr-x   2 nobody   pmichaud 4096 May 28 09:55 wiki.d
$ chmod 755 .
drwxr-xr-x  10 pmichaud pmichaud 4096 May 28 09:55 .
drwxrwsr-x   2 nobody   pmichaud 4096 May 28 09:55 uploads
drwxrwsr-x   2 nobody   pmichaud 4096 May 28 09:55 wiki.d

Jetzt gehören die beiden Verzeichnisse uploads/ und wiki.d/ dem User 'nobody', d. h. der Webserver kann in ihnen schreiben. Wir haben keine Schreibrechte für jedermann in den Verzeichnissen und der Besitzer des Accounts (pmichaud) hat immer noch Schreibrechte kraft seiner Gruppenzugehörigkeit und -rechte. Das 'setgid'-Bit sichert darüber hinaus, dass jede Datei und jedes Verzeichnis, die/das in uploads/ und wiki.d/ erzeugt wird, ebenfalls zu der Gruppe 'pmichaud' gehört.

Safe mode

ABER, wenn eine Site in PHPs "safe_mode" läuft, dann funktioniert die 'lass PmWiki sich um die Verzeichnisse kümmern'-Variante nicht, da PHP Dateien nur in Verzeichnissen jenes Benutzers erzeugt, dem auch das PHP-Skript selbst gehört. Deshalb kann PmWiki (Apache) die Verzeichnisse in diesem Fall nicht erzeugen, sonst wird safe_mode sich beklagen, sowie PmWiki eine Datei in diese Verzeichnisse zu schreiben versucht. Der einzige Weg, die Dinge im safe_mode zum Laufen zu kriegen, ist, die Verzeichnisse mit der Hand anzulegen und die Rechte auf 777 (rwxrwxrwx) zu setzen, wie es zu Beginn diese Artikels beschrieben wurde.

PHP als Besitzer des Skripts laufen lassen

Es gibt ein paar Webserver und PHP-Installationen, die so konfiguriert sind, dass ein PHP-Script mit der gleichen Identität wie der Besitzer des Skripts ausgeführt wird. Das wird oft 'suexec PHP' genannt oder sogar einfach 'suPHP'. In dem Fall, da PHP schließlich mit der Identität des Besitzers des Accounts ausgeführt wird, läuft alles einfach so 'out of the box' ohne eigenes Zutun. PmWiki erzeugt alle Verzeichnisse wie sie gebraucht werden und Rechte sind am Ende kein Thema.

Kochbuchskripten

Okay, sehen wir uns nun die Kochbuchskripten an. Wenn ein Skript Dateien enthält, die es für den Browser erreichbar zur Verfügung stellen will, sollten diese Dateien grundsätzlich irgendwo in der pub/-Hierarchie untergebracht werden und mittels '$PubDirUrl' referenziert werden.

Wenn ein Kochbuchskript Dateien auf die Platte *schreiben* muss, dann gelten für das entsprechende Verzeichnis die gleichen Regeln wie für die wiki.d- und uploads-Verzeichnisse mit den exakten Besitzverhältnissen und Rechten abhängig von der Konfiguration des Webservers und von PHP. Generell sollten die Kochbuchskripten das Gleiche tun wie PmWiki und einfach PmWikis mkdirp($dir)-Funktion aufrufen. PmWiki wird sich dann selbst um die Verzeichnisse kümmern (wenn es kann) oder zum Anlegen der Verzeichnisse auffordern, wie es erforderlich ist.

Wenn z. B. das Kochbuchrezept 'frobot' eine .css-Datei ausliefern will, dann sollte die Datei etwa nach pub/css/frobot.css oder pub/frobot/frobot.css geschrieben werden. Die Verzeichnisse und Dateien sollten in dem Fall vom Besitzer des Accounts erzeugt werden und ihm gehören, da das Kochbuchrezept keine der Dateien erzeugen oder ändern muss, wenn es aufgeführt wird.

Als alternatives Beispiel dient das Cookbook:MimeTeX-Rezept, dass in der Lage sein möchte, zwischengespeicherte Bilder für die mathematischen Formeln zu erzeugen und diese dem Webbrowser verfügbar zu machen. Deshalb nutzt MimeTex ein pub/cache/-Verzeichnis, das erzeugt werden sollte in der Art, wie auch die Verzeichnisse wiki.d/ und uploads/ erzeugt wurden (d. h. in Abhängigkeit von der PHP- und Webserver-Konfiguration). Nochmal: Cookbook:MimeTeX löst das, indem es mkdirp("pub/cache") aufruft und dieser Funktion das Erzeugen des Verzeichnisses überlässt oder den Administrators benachrichtigt, dass das Verzeichnis angelegt werden muss.

Siehe auch

für die Liste aller Seiten


Übersetzung von PmWiki.FilePermissions,   Originalseite auf PmWikiDe.FilePermissions   —   Backlinks

Zuletzt geändert:   PmWikiDe.FilePermissionsam 20.11.2022
 PmWiki.FilePermissionsam 20.11.2022
Edit - History - Print - Recent Changes - Search
Page last modified on November 20, 2022, at 07:38 AM