DokuWiki

It's better when it's simple

Narzędzia użytkownika

Narzędzia witryny


pl:acl

Kontrola dostępu

DokuWiki – jak większość systemów Wiki – jest domyślnie otwarty. Każdy może tworzyć, edytować i usuwać strony. Jednak czasami przydałoby się zabezpieczyć dostęp do niektórych lub wszystkich stron. W takim przypadku Access Control Lists (ACL) wchodzi do gry. Ta strona powinna dać ci ogólny pogląd na to, jak funkcjonuje ACL w DokuWiki i jak się go konfiguruje.

Więcej informacji znajdziesz na –> discussion:acl

:!: UWAGA: ACL DokuWiki jest obecnie standardowo dołączany i powinien być stabilny. Jeśli jednak jesteś zaniepokojony ryzykiem dostępu to twoich informacji w wiki przez nieautoryzowanych użytkowników, nie powinieneś w ogóle umieszczać tych danych w Internecie …

Konfiguracja

Aby włączyć ACL w DokuWiki, potrzebujesz co najmniej jednego domyślnego ACL. Po prostu skopiuj przykładowe pliki conf/acl.auth.php.dist i conf/users.auth.php.dist odpowiednio do conf/acl.auth.php i conf/users.auth.php a logowanie powinno działać. Jeśli dostaniesz komunikat „No ACL setup yet! Denying access to everyone.” (ACL nie ustawiony, brak dostępu dla wszystkich) upewnij się, że tekst na początku pliku acl.auth.php czyta acl.auth.php a nie users.auth.php.

Musisz ustawić pewne opcje konfiguracyjne. Popatrz na przykład, który możesz dodać do local.php aby włączyć domyślny tekstowy sposób autoryzacji z publiczna rejestracją:

Pamiętaj że wszystkie te opcje konfiguracji mogą być ustawione w menu administracji uprawnieniami.

  $conf['useacl']       = 1;        // to włącza ACL 
  $conf['superuser']    = '@admin'; // admin group is superuser - admin jest grupą superuser

Opcja useacl włącza dodatek ACL. Dodatek staje się teraz aktywny, przycisk logowania pojawia się na dole każdej ze stron Wiki i użytkownicy mogą się rejestrować. Opcja superuser określa, kto może zrobić wszystko w DokuWiki (włączając w to dodawanie uprawnień ACL) - może to być pojedynczy użytkownik lub grupa (oznaczona na początku znakiem @). Kiedy instalujesz Dokuwiki od początku, wciśnij przycisk w przeglądarce „Zaloguj”, podążaj za linkiem „zarejestruj” i zarejestruj przynajmniej jednego użytkownika. (Jeśli nie widzisz linku rejestracyjnego, masz ustawione niepoprawne uprawnienia do plików conf/users.auth.php conf/acl.auth.php i nie mogą być do nich zapisywane nowe dane) Następnie edytuj conf/users.auth.php i zmień uprawnienia przynajmniej jednego użytkownia z „user” na „admin”. Odtąd powinien pojawiać się dodatkowy przycisk „Administracja” wtedy, gdy jesteś zalogowany jako użytkownik należący do grupy „admin”.

W tym momencie można włączyć dodatkową cechę bezpieczeństwa. Aby nie pozwolić użytkownikom rejestrować się samodzielnie dodaj 'register' do opcji disableactions:

  $conf['disableactions'] = 'register';        // użytkownicy nie mogą już rejestrować sami siebie

Jeśli jest to zachowanie pożądane, użytkownicy mogą być dodawani tylko przez administratora (albo przez administracyjny interfejs sieciowy albo bezpośrednią edycję conf/users.auth.php).

Jest również kilka dodatkowych opcji konfiguracyjnych pozwalających kontrolować inne aspekty ACL, których wartości domyślne zaspokajają życzenia większości administratorów.

$conf['autopasswd']  = 1;                //Automatyczne generowanie hasła i wysłanie go mailem użytkownikowi
$conf['passcrypt']   = 'smd5';           //Użyta metoda szyfrowania (smd5,md5,sha1,ssha,crypt,mysql,my411)
$conf['defaultgroup']= 'user';           //Domyślna grupa, do której dodawani są nowi użytkownicy
$conf['profileconfirm'] = '1';           //Wymaganie bieżącego hasła by potwierdzić zmiany profilu użytkownika
$conf['authtype']     = 'plain';         // backend tekstowy (domyślny)
  • Zmiana autopasswd na 0 zezwala użytkownikom wskazać hasło w czasie rejestracji. Ma to efekt uboczny usunięcia gwarancji, że użytkownik zarejestrował się podając poprawny własny adres email.
  • passcrypt określa metodę szyfrowania używaną do przechowywania haseł.
  • defaultgroup wszyscy nowi użytkownicy zostaną domyślnie dodani do tej grupy.
  • Ustaw profileconfirm na 0 by zezwolić użytkownikom na zmianę swojego profilu (pełna nazwa, hasło i adres email) bez konieczności potwierdzenia przez wpisanie aktualnego hasła.
  • DokuWiki może użyć różnych sposobów dostępu do danych użytkowników i grup. Domyślnie używa własnego backendu plaintext. Backend jest wybierany przez ustawienie opcji authtype. Przejrzyj stronę backends by sprawdzić, jakie opcje są dostępne.

Zarządzanie użytkownikami

Użytkowników można dodawać, usuwać i modyfikować przy pomocy menadżera użytkowników. Aby dowiedzieć się, jak ręcznie dodać użytkowników, przejrzyj w dokumentacji opis backendu plain. Domyślnie użytkownicy mogą się również rejestrować sami.

Zobacz również: FAQ: Jak wyłączyć możliwość samodzielnej rejestracji użytkowników

Ograniczenia Dostępu

Ograniczenia dostępu mogą być przypisane do stron i przestrzeni nazw. Mamy pięć uprawnień: czytanie, zmiana, tworzenie, przesyłanie plików i usuwanie. Każde wyższe uprawnienie zawiera w sobie wszystkie niższe, z których czytanie jest najniższym, zaś usuwanie najwyższym. Zauważ, że uprawnienia tworzenie, przesyłanie plików i usuwanie mogą być przypisane tylko do przestrzeni nazw.

Gdy DokuWiki sprawdza jakie uprawnienia przyznać użytkownikowi, wykorzystuje wszystkie reguły pasujące do nazwy użytkownika lub grup, do których należy. Wykorzystywana jest reguła dająca największe uprawnienia. Sprawdzane są najpierw uprawnienia do strony, następnie wszystkich nadrzędnych przestrzeni nazw aż do odnalezienia pasującej reguły.

Aby dodać regułę ograniczającą, przejdź do strony do przyblokowania i przejdź do interfejsu administracji wciskając przycisk Administracja (dostępny tylko dla superuser). Tam wybierz Zarządzanie uprawnieniami. Zostanie wtedy wyświetlona poniższa tabela, pokazując wszystkie ograniczenia istotne dla bieżącej strony.

Przykład ograniczenia ACL

Ogranicznia dodawane są w pierwszym wierszu tabeli. Musisz wskazać zakres, którym może być sama strona lub jedna z przestrzeni nazw, w których ona leży 1). Musisz również wskazać komu chcesz przyznać (lub odebrać) dostęp; może to być użytkownik albo grupa. I na koniec musisz wskazać właściwy poziom uprawnień. Wybierając żadne blokujesz całkowicie dostęp użytkownikowi lub grupie do strony lub przestrzeni nazw..

Uwaga: Uprawnienie usuwania dotyczy tylko plików multimedialnych. Strony mogą być usuwane (i odtworzone) przez wszystkich posiadających uprawnienia co najmniej zmiany. Osoba posiadająca uprawnienie przesyłania plików bez usuwania nie może nadpisywać istniejących plików multimedialnych.

Grupy Specjalne

ALL. Wszyscy, nawet użytkownicy niezalogowani, są członkami grupy ALL. Możesz użyć tej grupy by zablokować dostęp wszystkim użytkownikom (jako ustawienie domyślne) a następnie poluźniać uprawnienia dla określonych użytkowników. Na przykład, na powyższym zrzucie ekranu, nikt nie ma prawa przesyłania plików poza członkami grupy upload.

user. Wszyscy zarejestrowani użytkownicy są domyślnie przypisywani do grupy 'user'. Użyj tej nazwy do nadania uprawnień 'zalogowanym' użytkownikom. Nazwa tej grupy jest konfigurowana przez opcję defaultgroup. Inaczej zatem niż wirtualna grupa „ALL”, grupa „user” jest rzeczywistą grupą do której użytkownicy są przypisywani automatycznie podczas użycia standardowego backendu autoryzacji. Jeśli używasz innego backendu musisz skorzystać z grup dostarczanych przez ten backend.

Informacje o kontekście

Ograniczenia dostępu są zapisywane w pliku conf/acl.auth.php, do którego serwer WWW musi mieć uprawnienia zapisu jeśli chcesz używać interfejsu administracji ACL. :!: Nie zaleca się, aby edytować ten plik ręcznie. Użyj zamiast tego interfejsu administracyjnego.

Puste linie i komentarze w stylu powłoki są ignorowane. Każda linia zawiera trzy pola oddzielone białymi znakami:

  • Ograniczany zasób. Może to być albo nazwa strony albo przestrzeń nazw. Przestrzenie nazw oznaczane są dodatkowym znakiem gwiazdki (patrz przykłady poniżej)
  • Nazwa grupy lub użytkownika. Nazwy grup oznaczane są wiodącym znakiem @
  • Poziom dostępu (patrz niżej)

Jest 7 poziomów dostępu reprezentowanych przez liczbę całkowitą. Wyższe poziomy zawierają w sobie niższe. Gdy możesz zmieniać, możesz również czytać. Jednakże uprawnienie admin o wartości 255 nie powinno być nigdy użyte w pliku conf/acl.auth.php. It is only used internally by matching against the superuser option.

Nazwa Poziom Stodowane do Uprawnienie DokuWiki constant
żadne 0 strony, przestrzenie nazw brak uprawnień – pełna blokada AUTH_NONE
czytanie 1 strony, przestrzenie nazw uprawnienie odczytu AUTH_READ
zmiana 2 strony, przestrzenie nazw można edytować istniejące strony AUTH_EDIT
tworzenie 4 przestrzenie nazw można tworzyć nowe strony AUTH_CREATE
przesyłanie plików 8 przestrzenie nazw mogą być przesłane pliki multimedialne AUTH_UPLOAD
usuwanie 16 przestrzenie nazw pliki multimedialne mogą być nadpisane i usunięte AUTH_DELETE
administracja 255 wtyczki administracyjne superużytkownik 2) może zmieniać uprawnienia administracyjne AUTH_ADMIN

Oto przykład:

*                     @ALL        4
*                     bigboss    16
start                 @ALL        1
marketing:*           @marketing  8
devel:*               @ALL        0
devel:*               @devel      8
devel:*               bigboss    16
devel:funstuff        bigboss     0
devel:*               @marketing  1
devel:marketing       @marketing  2

Prześledźmy go linia po linii (poniżej pełny opis):

  1. Ta linia ustala uprawnienia dla podstawowej przestrzeni nazw. Zezwala wszystkim tworzyć i edytować strony. Niemniej jednak przesyłanie plików nie jest dostępne.
  2. Użytkownik bigboss posiada pełne prawa
  3. Uprawnienia do strony początkowej 'start' jest ograniczone tylko do odczytu dla wszystkich
  4. Następnie ustalane są uprawnienia do przestrzeni nazw marketing. Wszyscy członkowie grupy marketing mogą tam przesyłać pliki - inni użytkownicy będą dopasowywani do linii 1 zatem wciąż mogą tworzyć i zmieniać. bigboss dziedziczy prawa z linii 2 zatem może przesyłać i usuwać pliki.
  5. Teraz ograniczany jest dostęp do przestrzeni nazw devel. Nikt nie może tam nic zrobić.
  6. No, niezupełnie nikt – dajemy tu użytkownikom grupy devel pełne prawa
  7. I oczywiście bigboss jest również dopuszczony – i jest jedynym, który może usuwać przesłane pliki
  8. However the devel guys don't want their boss to see the funstuff page – remember exact pagematches override namespace permissions
  9. Dodatkowo zespół marketing może czytać wszystko z przestrzeni nazw devel
  10. I na koniec chłopcom z marketing zezwala się również na zmianę strony devel:marketing.

Zauważ proszę, że w tym pliku kolejność nie ma znaczenia. Plik jest przetwarzany jako całość, po czym wyszukiwane jest najlepsze dopasowanie pary strona/użytkownik. Jeśli znajdzie się dopasowanie, kolejne działania są przerywane. Jeśli dopasowania nie ma, sprawdzane są uprawnienia grup do bieżącej strony. Jeśli nie odnajdzie się dopasowania, sprawdzenie kontynuowane jest na kolejnej otaczającej przestrzeni nazw.

Możesz prześledzić to na powyższym przykładzie dla uprawnień użytkownika bigboss. Nadaje mu się uprawnienia w linii 2, jednak musi dostać pełne prawa do przestrzeni nazw devel:* jeszcze raz w linii 7. Gdyby nie było tej linii, pierwszym dopasowaniemdla użytkownika bigboss do strony w przestrzeni nazw devel byłaby linia 5, jako że bigboss jest członkiem domyślnej grupy ALL.

Uwaga: Aby skonfigurować użytkowników lub grupy zawierające znaki specjalne (jak białe znaki) musisz zastosować znaki ucieczki URL. Stosuje się to tylko do znaków z zakresu poniżej 128. Plik ACL używa kodowania UTF-8 zatem wszystkie znaki wielobajtowe mogą być pisane normalnie. Powyższe stosuje się do backendów innych niż plain – backend tekstowy nie dopuszcza żadnych znaków specjalnych.

1)
najszersza przestrzeń nazw określana jest znakiem *
pl/acl.txt · ostatnio zmienione: 2023-01-24 12:27 przez saggi

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki