Zugriffssteuerung mit Hilfe von Berechtigungsklassen
1. Berechtigungsklassen
Jede Seite hat drei Berechtigungsklassen, so genannte Access Control Lists (ACL's):
Lesen definiert, wer berechtigt ist die Seite zu lesen
Schreiben definiert, wer berechtigt ist die Seite zu bearbeiten
Kommentieren definiert, wer berechtigt ist die Seite zu kommentieren
(für angepaßte 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/acls
Wichtig: Du musst angemeldet sein, um die ACLs Deiner Seite zu bearbeiten.
Eines dieser drei Rechte erhält nur, wer in die entsprechende ACL eingetragen ist. Alle drei 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)
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 HansMustermann enthält, kann nur der Benutzer HansMustermann die Seite ändern, aber niemand sonst
wenn lesen_ACL eine Zeile mit * enthält und eine andere Zeile mit !HansMustermann, bedeutet es, daß jeder die Seite lesen darf, ausgenommen HansMustermann
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 wacko.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 verändern oder kommentieren kann, wenn er auch das Recht hat, sie zu betrachten! So bedeudet !*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
Vergieb nie mehr Rechte als wirklich nötig!
2. Benutzergruppen/Aliase
Wacko Wiki unterstützt Benutzergruppen (Namensabkürzungen/Aliase). Nur die Administratoren des Wikis können Aliase erstellen und bearbeiten.
Um Aliase zu erstellen, musst Du die wakka.config.php im Verzeichnis /wackowiki wie folgt bearbeiten:
Bei den Namen von Aliasen wird nicht zwischem 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 auf * eingestellt – alle Benutzer (also auch nicht registrierte) besitzen alle drei Rechte auf jeder Seite.
Die voreingestellten Werte für neue Seiten werden in wakka.config.php gespeichert:
default_write_acl
default_read_acl
default_comment_acl
z.B.: wenn man nur registrierten Benutzern erlauben will eine Seite zu bearbeiten, ändert man die Default-Werte wie folgt:
Wichtig: Das Ändern der voreingestellten Werte beeinflußt nur neu erstellte Seiten!
Seiten, die erstellt wurden, bevor die Voreingestellte 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 wakka_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 Momment auf ' gewähren alle ' eingestellt sind, dann verwende folgende SQL-Anweisung:
UPDATE wakka_acls SET list = "$" WHERE privilege = "write" AND list = "*";
Beachte das der Präfix wakka_ ggf. durch den aktuellen in deinem Wiki ersetzt werden muss.
Achtung: Die Seite Anmeldung (bzw. die Version in der jeweiligen Sprache) muss immer bei Lesen auf * gesetzt sein, sonst ist eine Anmeldung im Wiki nicht mehr möglich.
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.
Ich habe meine Wacko Wiki 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 Schreibsschutz 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 bedeutet, dass man nicht die Berechtigung hat, sich diese 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 wakka.config.php bewirkt, dass zugriffsbeschränkte Seiten in diversen Listen wie Letzte Änderungen angezeigt werden
Oder alle Änderungen für Admin sichtbar machen: allrecentchanges_page = > AllRecentChanges " Admin-Werkzeug; Seite in welcher es erlaubt ist, mit {{allrecentchanges}} alle letzten Änderungen anzuzeigen (inklusive geschlossener Seiten), Möglichkeit für den Admin: er kann so eine ACL-geschützte Seite erstellen, wo er alle letzten Änderungen sehen kann, inklusive der Seiten, die gegen ihn oder gegen alle verschlossen wurden.
mehr zur Problematik etwas später
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 Wacko Wiki derzeit nicht vorgesehen (erweiterte Admin Werkzeuge sollen in R5 implementiert werden), 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.
6. Aufgaben
passende Bilder mit Beschreibung hinzufügen
Kaskade visualisieren
lesen->schreiben
lesen->kommentieren