View source for Zugriffssteuerung

Auch verfügbar in ((../English/AccessControlLists English)), ((../Español/ControlAcceso Español)), ((../Français/GestionDesDroits Française)), ((../Русский/ПраваДоступа Русский)), ((../Polski/PrawaDostępu Polski))

{{toc numerate=1}}

===Berechtigungsklassen==

Jede Seite hat fünf Berechtigungsklassen, so genannte Access Control Lists (ACL's): 

  1. **Lesen** definiert, wer berechtigt ist die Seite zu lesen
  1. **Schreiben** definiert, wer berechtigt ist die Seite zu bearbeiten
  1. **Kommentieren** definiert, wer berechtigt ist die Seite zu kommentieren
  1. **Erstellen** definiert, wer berechtigt ist neue (Unter-)Seiten zu erstellen
  1. **Hochladen** definiert, wer berechtigt ist Dateien zu dieser Seite hochzuladen
  1. (für angepasste Berechtigungsklassen können nach Bedarf Extra-ACLs einführt werden)

Diese können vom Besitzer der Seite (normalerweise der Benutzer, der die Seite erstellt hat) geändert werden. 
  *  über **Berechtigungen** (Einstellungen -> Berechtigungen) oder über die URL ##/DeineSeite/permissions##
  *  Man muss angemeldet sein, um die ACLs seiner Seite zu bearbeiten.

Eines dieser fünf Rechte erhält nur, wer in die entsprechende ACL eingetragen ist. Alle fünf ACLs sind also einfache Textlisten, die eine Anzahl an Benutzernamen enthalten. Eine //leere Liste// bedeutet "niemand hat dieses Recht". 

Möglichkeiten: 
  * ##*## als Platzhalter für "jeder"
  * ##$## als Platzhalter für "nur registrierte Benutzer"
  * ##!## ein vorangestelltes Ausrufezeichen verweigert das jeweilige Recht
  * ##[BenutzerName]## – Name des erlaubten Benutzers
  * ##[Benutzergruppe]## - Name der erlaubten Benutzergruppe (Aliase) ++(falls welche eingerichtet sind)++
  * ##(eine leere Liste)## - nur der Seitenbesitzer hat das Recht


file:/Doc/Deutsch/Zugriffssteuerung/zugriffssteuerung.png


Beispiele:
  * so wird z.B. aus //##*##// ("jeder hat das Recht") mit vorangestelltem Ausrufezeichen ##//!*//## ("niemand hat das Recht")
  * wenn schreiben_ACL, also die Berechtigung zum editieren der Seite, nur die Zeile ##//BenutzerName//## enthält, kann nur der Benutzer ##//BenutzerName//## die Seite ändern, aber niemand sonst 
  * wenn lesen_ACL eine Zeile mit //*// enthält und eine andere Zeile mit ##//!BenutzerName//##, bedeutet es, daß jeder die Seite lesen darf, ausgenommen ##//BenutzerName//##
  * wenn kommentieren_ACL den Eintrag ##$## hat, dürfen nur registrierte Benutzer Kommentare zu der Seite abgeben
  * wenn der Standard für schreiben_ACL (in der config.php, siehe unten) auf ##//" "//## gesetzt ist, hat __niemand__ mehr das Recht Seiten zu erstellen, auch kein Admin. 

%%(info type="important" title="Achtung")
Du solltest bei der Vergabe von Berechtigungen immer daran denken, dass ein Benutzer eine Seite nur editieren oder kommentieren //kann//, wenn er auch das Recht hat, sie zu betrachten! So bedeutet ##!*## **niemand!** hat das Recht auf die Seite zuzugreifen.
%%

Man kann auch die **ACLs für einen gesamten Cluster** definieren: //Einstellungen -> Berechtigungen für ganzen Cluster ändern//

**!!Vergib nie mehr Rechte als wirklich nötig.!!**

===Vererbung von Zugriffsrechten===

Zugriffsrechte werden vererbt. Mit anderen Worten, wenn man eine neue Seite unterhalb einer bestehenden (d.h. einer untergeordneten) Seite erstellt, hat diese neue Seite die gleichen Zugriffsrechte wie die übergeordnete Seite. Die Vererbung erfolgt nur beim Anlegen einer neuen Seite. Die Rechte der Kinder- oder Elternseite können jederzeit unabhängig voneinander geändert werden.

In der der Berechtigungsverwaltung der Seite kann man die Berechtigungen aller zugrunde liegenden Seiten gleichzeitig im Cluster ändern, indem man das Kontrollkästchen '**Berechtigungen für ganzen Cluster ändern**' aktiviert.
Hier kann man auch den Besitz an der Seite auf einen anderen Benutzer übertragen.

===Benutzergruppen==
Gruppen können über das ((/Doc/Deutsch/AdminPanel Admin Panel)) verwaltet werden.

file:/ap_groups_de.png

WackoWiki unterstützt Benutzergruppen (Namensabkürzungen/Aliase). Nur die Administratoren des  Wikis können Aliase erstellen und bearbeiten.

Bei den Namen von Aliasen wird **nicht** zwischen Groß- und Kleinschreibung unterschieden (not case sensitive).

Der Alias **Admins** ist besonders mächtig, da seine Mitglieder  z.B. jede mögliche Seite löschen oder umbenennen können, auch wenn sie nicht der Besitzer der Seite sind.

===Voreingestellte Werte==

Nach der ((Installation Installation)) sind die ACLs für jede Tätigkeit wie folgt eingestellt - alle registrierten Benutzer besitzen alle fünf Rechte auf jeder Seite.

file:/ap_permissions_de.png

Die voreingestellten Werte für neue Seiten werden in der  ((Konfiguration Config-Tabelle)) gespeichert:

  1. ##default_read_acl##
  1. ##default_write_acl##
  1. ##default_comment_acl##
  1. ##default_create_acl##
  1. ##default_upload_acl##

z.B.: wenn man nur registrierten Benutzern erlauben will eine Seite zu bearbeiten, ändert man die Default-Werte wie folgt:
%%
'default_read_acl' => '*',
'default_write_acl' => '$',
'default_comment_acl' => '$',
'default_create_acl' => '$',
'default_upload_acl' => 'Admins',
%%

**Wichtig:** Das Ändern der voreingestellten Werte wirkt sich nur auf neu erstellte Seiten aus!
Seiten, die bereits erstellt wurden, bevor die voreingestellten Werte geändert wurden, behalten ihre ursprünglichen ACL-Werte.

Wenn du alle ACL's ändern möchtest, kannst du es mit folgender SQL-Anweisung tun:
%%(sql)UPDATE wacko_acl SET list = "$" WHERE privilege = "write";%%


Wenn einige der ACL's bereits auf spezifische Benutzer eingestellt worden sind, ist es besser, nur jene Seiten  zu aktualisieren, 
in denen die Privilegien im Moment auf ' gewähren alle ' eingestellt sind, dann verwende folgende SQL-Anweisung:
%%(sql) UPDATE wacko_acl SET list = "$" WHERE privilege = "write" AND list = "*"; %%
für Kommentare:
%%(sql) UPDATE wacko_acl SET list = "$" WHERE privilege = "comment" AND list = "*"; %%
++Beachte das der Präfix **wacko_** ggf. durch den aktuellen in deinem Wiki ersetzt werden muss.++


**Achtung:** Die Seite **((/Login Anmeldung))** (bzw. die Version in der jeweiligen Sprache) muß immer bei **Lesen** auf ##*## gesetzt sein, sonst ist eine Anmeldung im Wiki nicht mehr möglich.

===Modi==

**Schutzmaßnahmen**
  * Nur Rechte vergeben, die wirklich nötig sind.
  * Sicherheitseinstellungen

====Nutzung====

Wiki -> Cluster -> Seite
{{include page="!/Modus"}}

===Fragen & Antworten==

  * Ich habe meine WackoWiki ganz neu installiert. Nun möchte ich auch jeden Besucher lesen und schreiben lassen. Ich möchte aber nicht das durch Vandalismus, wichtige interne Seiten beschädigt oder gelöscht werden. Was sind die Mindestabsicherungen, die ich durchführen muss um Schäden von Vandalen zu verhindern? !!Weiss jemand eine Antwort darauf ?!!
    * (((user:RobertVaeth RobertVaeth)) /30.12.2004 19:22/) Ich weiß zwar nicht, was du unter internen Seiten meinst (Default-Seiten oder eigene Seiten?). Ich persönlich habe alle von der Wacko-Installation erstellte Seiten (z.B. ((/Login Login)) oder ((/RecentChanges RecentChanges))) auf Schreibschutz gesetzt, damit diese Seiten nicht verändert werden können und dadurch das Wiki unbrauchbar wird. Deine eigenen Seiten, welche nur du verändern möchtest, kannst du ja genau so absichern (z.B. Startseite). Ich hoffe, deine Frage ist beantwortet, ansonsten einfach nochmals schreiben :-)

  * ((https://wackowiki.org/doc/theme/default/icon/locked.svg width=16)) / ((https://wackowiki.org/doc/theme/default/icon/unlocked.svg width=16)) wann wird dieses ((Layouts/Symbole Symbol)) angezeigt und was bedeutet es?
    * dieses Symbol wird vor einem Wiki - Link angezeigt, wenn man nicht die Berechtigung hat, sich die Seite anzeigen zu lassen. :) 
    
  * Es ist anscheinend möglich eine Seite zu editieren und dann mit z.B. ##!Admins## für Admins unsichtbar zu machen. Sie erscheint für den Admin dann auch nicht bei den letzten Änderungen, für jeden anderen Nutzer jedoch ist sie sichtbar. Hier steckt große Missbrauchsgefahr. Wie kann man sich davor schützen?
    * Entweder vorab alle Änderungen für alle sichtbar machen: ##'hide_locked' = > 0##, in der ((Konfiguration config.php)) bewirkt, dass zugriffsbeschränkte Seiten in diversen Listen wie Letzte Änderungen angezeigt werden
    * Oder alle Änderungen für Admin sichtbar machen: Admin-Werkzeug; Seite in welcher es erlaubt ist,  alle letzten Änderungen anzuzeigen (inklusive "geschlossener" Seiten), Möglichkeit für den Admin wo er alle letzten Änderungen sehen kann, inklusive der Seiten, die gegen ihn oder gegen alle verschlossen wurden.

  * Wie kann man einen Benutzer ganz löschen?
    * Den Benutzer kann man bspw. mit ((Glossar/P/phpMyAdmin phpMyAdmin)) einfach aus der Tabelle löschen, jedoch ist ein Löschen aus WackoWiki derzeit nicht vorgesehen (erweiterte ((AdminPanel Admin Werkzeuge)) wurden in **!!(green)R5!!** implementiert), da von der Konzeption her die Seiten dieses Benutzers, eben nicht nur dessen Inhalt, auch von anderen genutzt werden. Wem gehören dann diese Seiten, wer administriert sie, darf sie löschen oder einen neuen Besitzer übertragen, was ist mit geschützten Seiten und privaten Inhalten ...? Siehe dazu auch die Diskussionen hier im Wiki als auch im Bugtracker zu diesem Thema über vorgeschlagene Funktionen, Aspekte u.a.
      * Es kommt wohl auch nur selten vor, aber gelegentlich ist es dann vielleicht doch erforderlich. Bringt das Löschen mit phpMyAdmin im Wiki nichts durcheinander? Was passiert mit von diesem Benutzer angelegten oder bearbeiteten Seiten?
        * Als Administrator kann man diese Seiten über "Berechtigungen -> Besitzer" übernehmen und dann ggf. löschen. Bei einer großen Anzahl von Seiten kommt man mit einem SQL Skript schneller zum Ziel. 
 
  * Welche Möglichkeiten hat man, mal von ((Glossar/H/htaccess .htaccess)) abgesehen, wenn man z.B. das ganze oder Teile des Wikis nur für private Zwecke einsetzen will?
    * ACL für den ganzen Cluster ändern: //Einstellungen -> Berechtigungen für ganzen Cluster ändern// und dann nur für eine bestimmten Personenkreis Lese- und Schreibrechte erteilen, so bleibt dieser Teil für die anderen Nutzer unsichtbar. 


((../Deutsch zurück zur Übersicht))