Zugriffssteuerung
Auch verfügbar in English, Español, Française, Polski, Русский, 简体中文
1. Berechtigungsklassen
Jede Seite hat fünf 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
- Erstellen definiert, wer berechtigt ist neue (Unter-)Seiten zu erstellen
- Hochladen definiert, wer berechtigt ist Dateien zu dieser Seite hochzuladen
- (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".
Die Werte für jede Berechtigung sind:
* | 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) |
(eine leere Liste) | nur der Seitenbesitzer hat das Recht |
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 BenutzerBenutzerName
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, ausgenommenBenutzerName
- 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. 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.
3. Benutzergruppen
Gruppen können über das Admin Panel verwaltet werden.
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.
4. 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.
Um die Standard-ACL-Einstellungen zu ändern, gehen Sie im Admin-Panel in den Bereich Einstellungen -> Berechtigungen.
Die voreingestellten Werte für neue Seiten werden in der Config-Tabelle gespeichert:
-
default_read_acl
-
default_write_acl
-
default_comment_acl
-
default_create_acl
-
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_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:
UPDATE wacko_acl SET list = '$' WHERE privilege = 'write' AND list = '*';
für Kommentare:
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 Anmeldung muß immer bei Lesen auf*
gesetzt sein, sonst ist eine Anmeldung im Wiki nicht mehr möglich.
5. Modi
Schutzmaßnahmen
- Nur Rechte vergeben, die wirklich nötig sind.
- Sicherheitseinstellungen
5.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 privaten 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 | Umbenennen | Löschen | Anmerkung |
---|---|---|---|---|---|---|---|---|---|
Offenes Wiki | |||||||||
Administrator | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Seitenbesitzer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
registrierter Nutzer | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ||
Besucher | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ||
Konfiguration | 'default_read_acl' => '*', 'default_write_acl' => '*', 'default_comment_acl' => '*', 'default_create_acl' => '*', 'default_upload_acl' => 'Admins', | ||||||||
Halboffenes Wiki | |||||||||
Administrator | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Seitenbesitzer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
registrierter Nutzer | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ||
Besucher | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ||
Konfiguration | 'default_read_acl' => '*', 'default_write_acl' => '$', 'default_comment_acl' => '*', 'default_create_acl' => '$', 'default_upload_acl' => 'Admins', | ||||||||
Wikimodus | Rolle | Lesen | Schreiben | Kommentare | Erstellen | Dateien | Umbenennen | Löschen | Anmerkung |
Geschütztes Wiki | |||||||||
Administrator | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Seitenbesitzer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
registrierter Nutzer | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ||
Besucher | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ||
Konfiguration | 'default_read_acl' => '*', 'default_write_acl' => '$', 'default_comment_acl' => '$', 'default_create_acl' => '$', 'default_upload_acl' => 'Admins' | ||||||||
Privates Wiki | |||||||||
Administrator | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Seitenbesitzer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
registrierter Nutzer | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ||
Besucher | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ||
Konfiguration | 'default_read_acl' => '$', 'default_write_acl' => '$', 'default_comment_acl' => '$', 'default_create_acl' => '$', 'default_upload_acl' => 'Admins' | ||||||||
6. 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.
- Entweder vorab alle Änderungen für alle sichtbar machen:
- 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.
- 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?
- 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.
- 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.