Zugriffssteuerung

Auch verfügbar in English, Espanol, Française, Русский, Polski

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
  2. Schreiben definiert, wer berechtigt ist die Seite zu bearbeiten
  3. Kommentieren definiert, wer berechtigt ist die Seite zu kommentieren
  4. Erstellen definiert, wer berechtigt ist neue (Unter-)Seiten zu erstellen
  5. Hochladen definiert, wer berechtigt ist Dateien zu dieser Seite hochzuladen
  6. (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

Zugriffssteuerung für ein geschütztes Wiki


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.

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.

2. Benutzergruppen/Aliase


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


Um Aliase zu erstellen, musst Du die config.php im Verzeichnis config/ wie folgt bearbeiten:


$wacko_config['aliases'] = array(
'Admins' => "HansPeter",
'Arbeitsgruppe' => "HansPeter\nUdoSchmidt",
);


In diesem Beispiel gibt es den Alias "Admins" mit dem Mitglied HansPeter und den Alias "Arbeitsgruppe" mit den Mitgliedern HansPeter u. UdoSchmidt.


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.

3. Voreingestellte Werte


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


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


  1. default_read_acl
  2. default_write_acl
  3. default_comment_acl
  4. default_create_acl
  5. 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:

UPDATE wacko_acls 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:

UPDATE wacko_acls SET list = "$" WHERE privilege = "write" AND list = "*";

für Kommentare:
UPDATE wacko_acls 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 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.

4. Modi


Schutzmaßnahmen

  • Nur Rechte vergeben, die wirklich nötig sind.
  • Sicherheitseinstellungen

4.1. Nutzung


Wiki -> Cluster -> Seite

Offenes Wiki
In diesem Wiki kann jeder lesen und schreiben ohne sich zu registrieren. Typischer Weise als Installation im Intranet.


Halboffenes Wiki
Hier können nur registrierte Benutzer schreiben. Jedermann kann Kommentare abgeben.


Geschütztes Wiki
In diesem Wiki kann jeder mitlesen, schreiben ist aber nur Nutzern erlaubt die sich im Wiki registriert haben.


Privates Wiki
In privatem Wiki ist es nur Mitgliedern des Clusters möglich zu lesen und zu schreiben. Wenn du an einem privaten Wiki teilnehmen möchtest, muss der Administrator / Besitzer dich dazu freischalten.
Wikimodus Rolle Lesen Schreiben Kommentare Erstellen Dateien Anmerkung
Offenes Wiki
Administrator
Seitenbesitzer
registrierter Nutzer
Besucher
Konfiguration 'default_write_acl' => '*',
'default_read_acl' => '*',
'default_comment_acl' => '*',
Halboffenes Wiki
Administrator
Seitenbesitzer
registrierter Nutzer
Besucher
Konfiguration 'default_write_acl' => '$',
'default_read_acl' => '*',
'default_comment_acl' => '*',
Geschütztes Wiki
Administrator
Seitenbesitzer
registrierter Nutzer
Besucher
Konfiguration 'default_write_acl' => '$',
'default_read_acl' => '*',
'default_comment_acl' => '$',
Privates Wiki
Administrator
Seitenbesitzer
registrierter Nutzer
Besucher
Konfiguration 'default_write_acl' => '$',
'default_read_acl' => '$',
'default_comment_acl' => '$',

5. 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 ?
    • (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 oder 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 :-)

  • / wann wird dieses 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 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 phpMyAdmin einfach aus der Tabelle löschen, jedoch ist ein Löschen aus WackoWiki derzeit nicht vorgesehen (erweiterte Admin Werkzeuge wurden in 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 .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.

zurück zur Übersicht

Show Files (1 file)