1
<chapter id="howitworks">
3
>Jak to działa?</title>
5
<sect1 id="howitworks-overview">
10
>Zasada działania PolicyKit jest prosta, ale wymaga zmian w programach, które mają go wykorzystywać do zapytań o hasło.</para>
13
<sect1 id="howitworks-problem">
18
>W programach graficznych, najczęściej wykorzystywanym sposobem uzyskania uprawnień administratora jest wywołanie programu z poziomu użytkownika root, co jednak rodzi wiele zagrożeń bezpieczeństwa i nie pozwala na wybiórcze mapowanie uprawnień do działań. Nie ma możliwości oddzielenia uprawnień do instalacji pakietu od uprawnienia do podniesienia wersji systemu. W każdym przypadku, konieczne jest podanie hasła administratora. Drugim sposobem jest skorzystanie z komendy sudo, jednak po takim uruchomieniu programu, użytkownik ma pełne uprawnienia administratora.Jeżeli taka aplikacja wyświetla okno wyboru plików, działanie w trybie użytkownika root pozwala na usunięcie dowolnego pliku w systemie, a nawet na oglądanie i kopiowanie plików innych użytkowników. </para>
21
<sect1 id="howitworks-solution">
26
>Program PolicyKit rozwiązuje ten problem. Programista aplikacji musi wydzielić kod uprzywilejowany do oddzielnego programu, często nazywanego programem pomocniczym (bez interfejsu graficznego), oraz zdefiniować działania wymagające autoryzacji w pliku <quote
28
>. PolicyKit wczytuje ten plik i może autoryzować programy do wykonywania tych działań. Wykorzystanie interfejsu &DBus; do aktywacji aplikacji jest najlepszym jeśli nie jedynym sposobem uruchamiania aplikacji pomocniczych wymagających uprawnień administratora.</para>
31
>W tym rozwiązaniu aplikacja graficzna wywołuje działanie programu pomocniczego za pomocą interfejsu &DBus;, co uruchamia go z uprawnieniami administratora. W wywołaniu przekazywane są informacje o tym jakie działanie ma zostać wykonane i jaka aplikacja go wywołała. Program pomocniczy następnie wywołuje agenta PolicyKit aby potwierdzić autoryzację do wykonania danego działanie przez daną aplikację, agent PolicyKit zwraca informację do programu pomocniczego o potwierdzeniu autoryzacji do wykonania danego działania.W przypadku gdy program pomocniczy otrzyma informację że aplikacja nie posiada odpowiedniej autoryzacji, PolicyKit wyświetli okno z prośbą o autoryzację do wykonania działania.</para>
34
>Jeżeli PolicyKit otrzyma żądanie autoryzacji, uruchamia dostępnego agenta, którym może być &policykit-kde;. Po pozytywnej autoryzacji aplikacja graficzna musi ponownie wywołać program pomocniczy aby wykonać działanie.</para>