# Pliki wykorzystywane podczas konfiguracji programu &kdm;

Ten rozdział opisuje pliki, które wpływają na zachowanie programu &kdm;. Niektóre z nich można zmieniać przy pomocy modułów &kcontrol;, ale nie wszystkie.

## &kdmrc; - Główny plik konfiguracyjny &kdm;

Ogólny format pliku przypomina format plików INI. Opcje to pary złożone z klucza i wartości, umieszcza się je w sekcjach. Ważna jest wielkość liter (wielkie i małe są traktowane inaczej). Błędy składniowe i nierozpoznane pary klucz/wartość powodują komunikaty o błędach, ale nie zakończenie działania &kdm;.

Wiersze zaczynające się od znaku `#` to komentarze; puste wiersze są także ignorowane.

Sekcje są wyróżnione przez `[``Nazwę sekcji``]`.

Każdy ekran X można konfigurować osobno.

Każdy ekran ma nazwę , która składa się z nazwy komputera (która jest pusta dla ekranów lokalnych podanych w `StaticServers` i `ReserveServers`), dwukropka i numeru ekranu. Ekran należy także do lasy ekranów (w większości przypadków można to zignorować).

Sekcje z ustawieniami dotyczącymi określonego ekranu mają składnię, którą można zapisać formalnie jako `[X-` `komputer` [ `:` `numer` [ `_` `klasa` ] ] `-` `podsekcja` `]`

Wszystkie sekcje z tą samą `podsekcją` tworzą klasę sekcji.

Znaku specjalnego `*` można użyć w polach `komputer`, `numer` i `klasa`. W ten sposób określa się wszystkie wartości tego pola. Można także pominąć końcowe pola, zakłada się wtedy, że mają one wartość `*`. Nazwa komputera to albo nazwa domenowa, jak `.inf.tu-dresden.de` lub znak specjalny `+` (oznacza wartość niepustą).

Sekcja, z której wykorzystywane są ustawienia jest określona zgodnie z pewną liczbą zasad. Oto one:

- Dokładne dopasowanie jest ważniejsze od niepełnego (dla nazwy komputera), które z kolei jest ważniejsze od znaku specjalnego (`+` przed `*`).

- Dla dokładnych dopasowań ważność spada z lewej do prawej.

- Przykład: nazwa ekranu mojkomputer.gdzies:0, klasa dpy

  - [X-mojkomputer.gdzies:0_dpy] to dopasowanie lepsze od

  - [X-mojkomputer.gdzies:0_*] (to samo co [X-mojkomputer.gdzies:0]), które z kolei jest lepsze od

  - [X-mojkomputer.gdzies:*_dpy], które jest lepsze od

  - [X-mojkomputer.gdzies:*_*] (to samo co [X-mojkomputer.gdzies]), które jest lepsze od

  - [X-.gdzies:*_*] (to samo co [X-.gdzies]), które jest lepsze od

  - [X-+:0_dpy], które jest lepsze od

  - [X-*:0_dpy] , które jest lepsze od

  - [X-*:0_*] (to samo co [X-*:0]), które jest lepsze od

  - [X-*:*_*] (to samo co [X-*]).

  - Te sekcje nie pozwolą na dopasowanie ekranu:

    [X-jegokomputer], [X-mojkomputer.gdzies:0_dec], [X-*:1], [X-:*]

Często spotykane sekcje to [X-*] (wszystkie ekrany), [X-:*] (wszystkie lokalne ekrany) i [X-:0] (pierwszy ekran lokalny).

Format wszystkich kluczy to ```klucz`` `=` `wartość``. Klucze są ważne tylko w klasie sekcji, dla której są zdefiniowane. Niektóre klucze nie stosują się do części ekranów, są wtedy ignorowane.

Jeśli ustawienie nie zostało znalezione dla żadnej z pasujących sekcji to używana jest wartość domyślna.

Znaki specjalne uzyskuje się używając kombinacji rozpoczynających się od odwrotnego ukośnika. Te znaki to: odstępy na początku i końcu (`\s`), tabulacje (`\t`), koniec wiersza (`\n`), powrót karetki (`\r`) i odwrotny ukośnik (`\\`)).

Na listach pola są oddzielane przecinkami, bez białych znaków.

Niektóre polecenia podlegają podziałowi na słowa, podobnemu do tego wykonywanego przez sh: pojedyncze i podwójne cudysłowy (`'` oraz `"`) mają swoje zwykłe znaczenie; odwrotny ukośnik cytuje wszystko (nie tylko znaki specjalne). Podwójne ukośniki muszą być podwojone z powodu dwóch poziomów cytowania.

Standardowy &kdmrc; zawiera bardzo wiele komentarzy. Wszystkie one są tracone po wykonaniu w nim zmian za pomocą Centrum Sterowania KDE.

### Sekcja [General] &kdmrc;

Ta sekcja zawiera opcje globalne, które nie pasują do żadnej z pozostałych sekcji.

`ConfigVersion`

- Ta opcja istnieje tylko w celu ułatwienia automatycznego uaktualniania. Nie zmieniaj jej wartości, może to spowodować konflikt przy kolejnych uaktualnieniach i, w niektórych przypadkach, uniemożliwić uruchomienie &kdm;.

`StaticServers`

- Lista ekranów (&X-Server;) zarządzanych przez &kdm;. Ekrany z nazwą komputera są ekranami zdalnymi, które powinny już działać; pozostałe ekrany są lokalne, &kdm; uruchamia dla każdego z nich własny &X-Server;; zobacz też `ServerCmd`. Każdy ekran należy do klasy ekranów; nazwę klasy dołącza się do nazwy ekranu po podkreśleniu. Po więcej szczegółów zajrzyj do kdmrc-xservers.

  Domyślną wartością jest :0.

`ReserveServers`

- Lista ekranów uzyskiwanych na żądanie. Składnia taka sama jak w przypadku opcji `StaticServers`.

  Domyślnie puste.

`ServerVTs`

- Lista wirtualnych terminali, które może otrzymać &X-Server;. W przypadku podania wartości ujemnej zostanie użyta jej wartość bezwzględna, a terminal wirtualny zostanie utworzony tylko jeśli jądro systemu stwierdzi, że taki jeszcze nie istnieje. Jeśli &kdm; wykorzysta wszystkie terminale z listy, utworzy nowe terminale wirtualne o numerach większych od ostatniego w listy. Opcja ta działa obecnie tylko w Linuksie.

  Domyślnie puste.

`ConsoleTTYs`

- Opcja dla systemów operacyjnych (OS) z obsługą terminali wirtualnych (VT) zarówno w &kdm;, jak i w samym OS. Obecnie działa tylko w Linuksie.

  Kiedy &kdm; przełącza do trybu wiersza poleceń, rozpoczyna monitorowanie wszystkich TTY wpisanych w tej opcji (bez początkowego `/dev/`). Jeśli żaden z nich nie jest aktywny przez określony czas, &kdm; przełącza do graficznego okna logowania.

  Domyślnie puste.

`PidFile`

- Wartością jest nazwa pliku, do którego zostanie zapisany identyfikator głównego procesu &kdm; w formacie ASCII (czyli jako ciąg cyfr). Jeśli nazwa pliku jest pusta, numer procesu nie będzie przechowywany w pliku.

  Domyślnie puste.

`LockPidFile`

- Ta opcja wskazuje czy &kdm; używa blokad plików do synchronizacji między wieloma menedżerami wyświetlania.

  Domyślna wartość to true (prawda).

`AuthDir`

- Nazwa katalogu, w którym &kdm;, podczas inicjalizacji sesji, przechowuje pliki uwierzytelniania wykorzystywane przez &X-Server;. &kdm; spodziewa się, ze system wyczyści ten katalog podczas ponownego uruchamiania.

  Plik uwierzytelniania do użycia dla konkretnego ekranu podaje się za pomocą opcji `AuthFile` w [X-*-Core].

  Domyślna wartość to /var/run/xauth.

`AutoRescan`

- Wartość typu prawda/fałsz, która wskazuje, czy &kdm; automatycznie ponownie wczytuje konfigurację jeśli stwierdzi, że została zmieniona.

  Domyślna wartość to true (prawda).

`ExportList`

- Dodatkowe zmienne środowiska przekazywane przez &kdm; do uruchamianych przez niego programów. Często są to `LD_LIBRARY_PATH` i `XCURSOR_THEME`; w innych przypadkach opcja ta nie jest potrzebna zbyt często.

  Domyślnie puste.

`RandomFile`

- Jeśli system nie ma własnego źródła entropii jak /dev/urandom (zobacz: `RandomDevice`) i nie ma demona entropii takiego jak EGD (zobacz: `PrngdSocket` i `PrngdPort`), to &kdm; wykorzysta własny generator liczb pseudolosowych który, między innymi, będzie wykorzystywał sumy kontrolne fragmentów tego pliku (które, oczywiście, powinny się często zmieniać).

  Ta opcja nie istnieje w Linuksie i wielu BSD.

  Domyślna wartość to /dev/mem.

`PrngdSocket`

- Jeśli system nie ma własnego źródła entropii jak /dev/urandom (zobacz: `RandomDevice`), wykorzystuje dane losowe z demona generatora liczb pseudolosowych, takiego jak EGD (http://egd.sourceforge.net) przez gniazdo domeny UNIX-a.

  Ta opcja nie istnieje w Linuksie i wielu BSD.

  Domyślnie puste.

`PrngdPort`

- To samo co `PrngdSocket`, wykorzystuje gniazdo TCP na komputerze lokalnym.

`RandomDevice`

- Ścieżka do urządzenia znakowego, z którego &kdm; powinien czytać dane losowe. Pusta wartość oznacza, że ma zostać użyte systemowe źródło entropii, jeśli takie istnieje.

  Ta opcja nie istnieje w OpenBSD, gdzie zamiast tego jest wykorzystywana systemowa funkcja arc4_random.

  Domyślnie puste.

`FifoDir`

- Katalog, w którym mają zastać utworzone gniazda sterujące; pusta wartość wyłącza je.

  Domyślna wartość to /var/run/xdmctl.

`FifoGroup`

- Grupa, do której powinno gniazdo sterujące; nazwa lub numer identyfikacyjny grupy.

`DataDir`

- Katalog, w którym &kdm; ma przechowywać stałe dane robocze. Takie dane to na przykład informacja o poprzednio zalogowanym użytkowniku na określonym ekranie.

  Domyślna wartość to /var/lib/kdm.

`DmrcDir`

- Katalog, w którym &kdm; ma przechowywać pliki `.dmrc` użytkowników. Jest potrzebny tylko jeśli przez zalogowaniem nie można odczytywać katalogów domowych (tak jest w przypadku AFS).

  Domyślnie puste.

### Sekcja [Xdmcp] &kdmrc;

Ta sekcja zawiera opcje sterujące sposobem obsługi żądań &XDMCP; przez &kdm;.

`Enable`

- Czy &kdm; ma nasłuchiwać nadchodzących żądań &XDMCP;.

  Domyślna wartość to true (prawda).

`Port`

- Port UDP używany przez &kdm; do nasłuchiwania nadchodzących żądań &XDMCP;. Jeśli nie zajmujesz się wyszukiwaniem błędów w systemie, zostaw domyślną wartość.

  Domyślna wartość to 177.

`KeyFile`

- Metoda uwierzytelniania &XDMCP; XDM-AUTHENTICATION-1 wymaga, żeby klucz prywatny był współdzielony między &kdm; i terminalem. Za pomocą tej opcji podaje się plik z tymi wartościami. Każdy wpis pliku składa się z nazwy ekranu i współdzielonego klucza.

  Domyślnie puste.

`Xaccess`

- Aby zapobiegać nieautoryzowanym usługom &XDMCP; i pozwolić na przekazywanie żądań &XDMCP; IndirectQuery, ten plik zawiera bazę nazw komputerów, którym zezwala się na połączenia do tego komputera albo listę komputerów, do których takie żądania mają być przekazywane. Format tego pliku jest opisany w kdmrc-xaccess.

  Domyślna wartość to ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

- Liczba sekund oczekiwania na odpowiedź ekranu po wybraniu go przez użytkownika za pomocą programu wyboru. Jeśli ekran wyśle w tym czasie IndirectQuery &XDMCP; to żądanie jest przekazywane do wybranego komputera. W przeciwnym wypadku zakłada się, że pochodzi z nowej sesji i użytkownik ponownie otrzymuje ekran wyboru.

  Domyślna wartość to 15.

`RemoveDomainname`

- Podczas tworzenia nazwy klientów &XDMCP; zostaje zazwyczaj użyta w pełni kwalifikowana nazwa terminala. Taka nazwa jest czasami nieczytelna, więc, jeśli ta opcja jest włączona, &kdm; usuwa część zawierającą nazwę domeny.

  Domyślna wartość to true (prawda).

`SourceAddress`

- Wykorzystanie numerycznych adresów IP zamiast nazw komputerów dla połączeń przychodzących. Dla komputerów mających kilka połączeń sieciowych. W ten sposób unika się próby połączenia z interfejsem sieciowym, który może być w danej chwili wyłączony.

  Domyślna wartość to false (fałsz).

`Willing`

- Program, który jest uruchamiany (jako `root`) kiedy otrzymane zostanie żądanie &XDMCP; DirectQuery lub BroadcastQuery, a komputer został skonfigurowany tak, aby udostępniał zarządzanie ekranami przez &XDMCP;. Wynik działania tego programu może być pokazywany w oknie wyboru. Jeśli nie podano żadnej nazwy programu, wysyłany jest ciąg znaków Willing to manage.

  Domyślnie puste.

### Sekcja [Shutdown] &kdmrc;

Ta sekcja zawiera opcje globalne dotyczące zamykania systemu.

`HaltCmd`

- Polecenie (objęte podziałem na słowa) używane do zatrzymania/zakończenia pracy systemu.

  Wartość domyślna to coś sensownego dla systemu, dla którego zbudowano &kdm;. Przykład: `/sbin/shutdown `-h` `now``.

`RebootCmd`

- Polecenie (objęte podziałem na słowa) używane do ponownego uruchomienia systemu.

  Wartość domyślna to coś sensownego dla systemu, dla którego zbudowano &kdm;. Przykład: `/sbin/shutdown `-r` `now``.

`AllowFifo`

- Czy dozwolone jest zamykanie systemu za pomocą globalnego gniazda sterującego.

  Domyślna wartość to false (fałsz).

`AllowFifoNow`

- Czy jest dozwolone przerywanie aktywnych sesji podczas zamykania systemu przy użyciu globalnego gniazda sterującego.

  Odniesie skutek tylko jeśli włączona jest opcja `AllowFifo`.

  Domyślna wartość to true (prawda).

`BootManager`

- Menadżer rozruchu, którego ma użyć &kdm; przy pokazywaniu opcji ponownego uruchomienia w oknie zamykania systemu.

  `None`

- Brak menedżera rozruchu

`Grub`

- Menadżer rozruchu Grub

`Lilo`

- Menadżer rozruchu Lilo (tylko Linux na i386 & x86-64)

Domyślna wartość to None.

### Klasa sekcji [X-*-Core] &kdmrc;

Ta sekcja klasy zawiera opcje dotyczące ogólnych mechanizmów &kdm; (tzw. core).

`OpenDelay`

- Zobacz: `OpenRepeat`.

  Domyślna wartość to 15.

`OpenTimeout`

- Zobacz: `OpenRepeat`.

  Domyślna wartość to 120.

`OpenRepeat`

- Te opcje kontrolują sposób zachowania &kdm; podczas próby otwarcia połączenia do&X-Server;. `OpenDelay` to długość oczekiwania(w sekundach) między próbami zakończonymi sukcesem, `OpenRepeat` to liczba wykonywanych prób, a `OpenTimeout` to maksymalny czas trwania jednej próby. Po `OpenRepeat` próbach lub po `OpenTimeout` sekundach trwania dowolnej próby przyjmuje się, że próba rozpoczęcia połączenia nie udała się.

  Domyślna wartość to 5.

`StartAttempts`

- Ile razy &kdm; próbuje uruchomić `odległy` ekran z listy `StaticServers`. Jeśli nie uda się, ekran zostanie zablokowany. Jest tylko jedna próba uruchomienia ekranu lokalnego, a próby dla ekranów &XDMCP; są powtarzane w nieskończoność przez klienta (jeśli nie przekazano opcji `-once` do &X-Server;).

  Domyślna wartość to 4.

`ServerAttempts`

- Liczba prób uruchomienia przez &kdm; lokalnego &X-Server;. Uruchomienie obejmuje także oczekiwanie na pojawienie się ekranu.

  Domyślna wartość to 1.

`ServerTimeout`

- Ile sekund &kdm; powinien czekać na start lokalnego &X-Server;.

  Domyślna wartość to 15.

`ServerCmd`

- Polecenie używane do uruchomienia &X-Server;, bez numeru ekranu i terminala wirtualnego. Ciąg ten podlega podziałowi na słowa.

  Wartość domyślna to coś sensownego dla systemu, dla którego zbudowano &kdm;. Przykład: `/usr/X11R6/bin/X`.

`ServerArgsLocal`

- Dodatkowe argumenty &X-Server; dla sesji lokalnych. Ciąg podlega podziałowi na słowa.

  Domyślnie puste.

`ServerArgsRemote`

- Dodatkowe argumenty &X-Server; dla sesji zdalnych. Ciąg podlega podziałowi na słowa.

  Domyślnie puste.

`ServerVT`

- Terminal wirtualny na którym powinien być uruchomiony &X-Server;. Zamiast tej opcji powinno się używać `ServerVTs`. Wartość zerowa oznacza, że &kdm; ma automatycznie przydzielić VT. Ustawienie wartości `-1` powoduje nie przydzielanie VT - jest wymagane w przypadku konfiguracji z wieloma fizycznymi konsolami. Obecnie ta opcja jest dostępna tylko w Linuksie.

`ServerTTY`

- Jest to opcja dla OSów bez obsługi VT; tak przez &kdm; jak i przez sam OS. Obecnie odnosi się do wszystkich OSów poza Linuksem.

  Po przełączeniu &kdm; do trybu wiersza poleceń zaczyna on monitorować ten TTY (podany bez początkowego `/dev/`). Jeśli nie jest używany przez pewien czas, &kdm; przełącza do graficznego ekranu logowania.

  Domyślnie puste.

`PingInterval`

- Zobacz: `PingTimeout`.

  Domyślna wartość to 5.

`PingTimeout`

- Aby dowiedzieć się o zniknięciu odległych ekranów, &kdm; regularnie je sprawdza. `PingInterval` określa czas (w minutach) między kolejnymi próbami, a `PingTimeout` maksymalny czas oczekiwania na odpowiedź od terminala (w minutach). Jeśli terminal nie odpowiada, to sesja zostaje zakończona.

  W przypadku częstego wykorzystywania terminali X, które mogą zostać odcięte od głównego komputera, dobrym pomysłem może być zwiększenie czasu oczekiwania. Jedynym problemem jest to, że sesje będą istniały dalej po przypadkowym wyłączeniu terminala.

  Domyślna wartość to 5.

`TerminateServer`

- Czy &kdm; powinien uruchamiać ponownie lokalny &X-Server; po zakończeniu sesji, zamiast jej resetu. Ta opcja jest przydatna jeśli &X-Server; posiada błędy wycieków pamięci lub powoduje awarię systemu przy próbie resetu.

  Domyślna wartość to false (fałsz).

`ResetSignal`

- Numer sygnału do użycia do resetu lokalnego &X-Server;.

  Wartość domyślna to 1 (SIGHUP).

`TermSignal`

- Numer sygnału do użycia do zakończenia działania lokalnego &X-Server;.

  Wartość domyślna to 15 (SIGTERM).

`Authorize`

- Określa czy &kdm; generuje i używa uwierzytelniania dla lokalnych połączeń z &X-Server;. W przypadku ekranów &XDMCP; wykorzystywane jest uwierzytelnianie żądane przez ekran; zdalne ekrany nie wykorzystujące &XDMCP; w ogóle nie obsługują uwierzytelniania.

  Domyślna wartość to true (prawda).

`AuthNames`

- Jeśli opcja `Authorize` ma wartość true (prawda), wykorzystywany jest podany tu mechanizm uwierzytelniania. Metoda MIT-MAGIC-COOKIE-1 jest dostępna zawsze; dostępność XDM-AUTHORIZATION-1, SUN-DES-1 i MIT-KERBEROS-5 zależy od konfiguracji użytej do budowania.

  Wartość domyślna to DEF_AUTH_NAME.

`ResetForAuth`

- Niektóre stare &X-Server;y ponownie odczytują plik uwierzytelniania podczas resetu &X-Server;a, zamiast sprawdzenia pierwotnego połączenia. &kdm; generuje informacja wykorzystywane przy uwierzytelnianiu zaraz przed połączeniem z ekranem, więc stary &X-Server; nie otrzyma aktualnej informacji. Włączenie tej opcji powoduje, że &kdm; wysyła do &X-Server; sygnał SIGHUP po utworzeniu pliku. Powoduje to dodatkowy reset &X-Server;a, podczas którego odczyta on nowe informacje dotyczące uwierzytelniania.

  Domyślna wartość to false (fałsz).

`AuthFile`

- Ten plik jest wykorzystywany do przekazywania danych uwierzytelniania z &kdm; do &X-Server;, przy pomocy opcji wiersza poleceń `-auth` programu &X-Server;. Powinien być przechowywany w katalogu, który nie jest dostępny do zapisu dla użytkowników, jako że mógłby być łatwo usunięty, co spowodowałoby wyłączenie mechanizmu uwierzytelniania w &X-Server;. Jeśli nic nie podano, tworzona jest losowa nazwa z `AuthDir` i nazwą ekranu.

  Domyślnie puste.

`Resources`

- Ta opcja określa nazwę pliku do wczytania przez `xrdb` jako baza danych o zasobach dla okna głównego ekranu 0. Programy KDE nie używają zazwyczaj zasobów X, więc opcja ta jest potrzebna tylko jeśli programu `Setup` tego potrzebuje.

  Domyślnie puste.

`Xrdb`

- Program `xrdb` używany do odczytu pliku zasobów X podanego w `Recources`. Ciąg podlega podziałowi na słowa.

  Wartość domyślna to ${`x_bindir`}/xrdb.

`Setup`

- Ciąg podlega podziałowi na słowa. Znajduje się tam nazwa programu uruchamianego przed oknem logowania (jako użytkownik `root`). Można go wykorzystać do zmiany wyglądu ekranu wokół okna logowania lub do umieszczenia na ekranie innych okien (np. `xconsole`). Najczęściej używa się tutaj nazwy pliku `Xsetup`. Zobacz: kdmrc-xsetup.

  Domyślnie puste.

`Startup`

- Ciąg podlega podziałowi na słowa. Znajduje się tam nazwa programu uruchamianego (jako `root`) po zakończeniu sukcesem procesu uwierzytelniania użytkownika. Najczęściej spotykaną tu nazwą pliku jest `Xstartup`. Zobacz: kdmrc-xstartup.

  Domyślnie puste.

`Reset`

- Ciąg podlega podziałowi na słowa. Znajduje się tam nazwa programu uruchamianego (jako `root`) po zakończeniu sesji. Najczęściej spotykaną tu nazwą pliku jest `Xreset`. Zobacz: kdmrc-xreset.

  Domyślnie puste.

`Session`

- Ciąg podlega podziałowi na słowa. Podaje się tu program sesji, który ma być uruchomiony (z prawami użytkownika posiadającego daną sesję). Najczęściej wpisuje się tu `Xsession`. Zobacz: kdmrc-xsession.

  Wartość domyślna to ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

- Jeśli nie uda się uruchomić programu `Session`, &kdm; spróbuje podanego tutaj. Ten program jest uruchamiany bez argumentów, ale przy wykorzystaniu takich samych zmiennych środowiska jakie miałaby sesja (zobacz: kdmrc-xsession).

  Wartość domyślna to ${`x_bindir`}/xterm.

`UserPath`

- Zmienna środowiska `PATH` dla nie należącego do użytkownika `root` programu `Session`.

  Wartość domyślna zależy od systemu, dla którego zbudowano &kdm;.

`SystemPath`

- Zmienna środowiska `PATH` dla wszystkich programów poza nie należącym do użytkownika `root` programem `Session`. Jest dobrym pomysłem nie wpisywanie tu `.` (bieżący katalog).

  Wartość domyślna zależy od systemu, dla którego zbudowano &kdm;.

`SystemShell`

- Zmienna środowiska `SHELL` dla wszystkich programów poza `Session`.

  Wartość domyślna to /bin/sh.

`UserAuthDir`

- Jeśli &kdm; nie może zapisać do zwykłego pliku uwierzytelniania ($`HOME`/.Xauthority), tworzy plik o unikalnej nazwie w tym katalogu i tak zmienia zmienną środowiska `XAUTHORITY`, żeby na niego wskazywała.

  Wartość domyślna to /tmp.

`ForceUserAuthDir`

- Jeśli prawda, to `UserAuthDir` będzie używany bezwarunkowo.

  Domyślna wartość to false (fałsz).

`AutoReLogin`

- Jeśli włączona, &kdm; automatycznie ponownie uruchomi sesję po awarii programu &X-Server; (lub jeśli został on wyłączony za pomocą Alt-Ctrl-BackSpace). Włączenie tej opcji otwiera lukę w bezpieczeństwie: blokadę ekranu daje się obejść (jeśli nie jest wykorzystana blokada wbudowana w &kde;).

  Domyślna wartość to false (fałsz).

`AllowRootLogin`

- Jeśli włączone, nie pozwala użytkownikowi `root` (i każdemu innemu z UID = 0) na bezpośrednie zalogowanie.

  Domyślna wartość to true (prawda).

`AllowNullPasswd`

- Jeśli wyłączone, mogą się logować tylko użytkownicy posiadający hasło.

  Domyślna wartość to true (prawda).

`AllowShutdown`

- Użytkownicy mający uprawnienia do zamykania systemu. Odnosi się to zarówno do okna logowania, jak i gniazd sterujących.

  `None`

- brak opcji Zamknij system... w menu

`Root`

- aby zamknąć system trzeba podać hasło użytkownika `root`

`All`

- wszyscy mogą zamykać system

Wartość domyślna to All.

`AllowSdForceNow`

- Użytkownicy, którzy mają uprawnienia do przerywania aktywnych sesji przy zamykaniu systemu.

  `None`

- nie jest możliwe wymuszone zakończenie sesji

`Root`

- aby wymusić zamknięcia systemu konieczne jest hasło użytkownika `root`

`All`

- każdy może wymusić zamknięcie systemu

Wartość domyślna to All.

`DefaultSdMode`

- Domyślny sposób wykonania zlecenia zamknięcia systemu.

  `Schedule`

- zamknięcie systemu po zakończeniu wszystkich aktywnych sesji (możliwie szybko)

`TryNow`

- zamknięcie systemu jeśli nie ma aktywnych sesji; w przeciwnym wypadku brak akcji

`ForceNow`

- bezwarunkowe zamknięcie systemu

Domyślna wartość to Schedule.

`ScheduledSd`

- Sposób podania sposobu wykonania zlecenia zamknięcia systemu:

  `Never`

- brak

`Optional`

- jako przycisk w podstawowym oknie dialogowym dotyczącym zamykania systemu

`Always`

- zamiast zwykłego okna dialogowego zamykania systemu

Wartość domyślna to Never.

`NoPassEnable`

- Włączenie logowania bez podawania hasła na tym ekranie. Należy używać tej opcji z rozwagą!

  Domyślna wartość to false (fałsz).

`NoPassUsers`

- Użytkownicy, którzy nie muszą podawać hasła, żeby się zalogować. Elementy rozpoczynające się od `@` odnoszą się do wszystkich użytkowników w grupie o tej nazwie. `*` oznacza wszystkich użytkowników oprócz `root` (i innych o UID = 0). Nigdy nie należy podawać tu użytkownika `root`.

  Domyślnie puste.

`AutoLoginEnable`

- Włączenie automatycznego logowania. Tej opcji należy używać z rozwagą!

  Domyślna wartość to false (fałsz).

`AutoLoginAgain`

- Jeśli włączone, automatycznie logowanie po wylogowaniu. Jeśli wyłączone to automatyczne logowanie odbywa się tylko przy rozpoczęciu sesji ekranu.

  Domyślna wartość to false (fałsz).

`AutoLoginDelay`

- Czas w sekundach przed rozpoczęciem automatycznego logowania. Taki efekt jest też nazywany opóźnionym logowaniem.

`AutoLoginUser`

- Użytkownik do automatycznego logowania. Nigdy nie należy tu podawać nazwy `root`!

  Domyślnie puste.

`AutoLoginPass`

- Hasło użytkownika, który ma być automatycznie zalogowany. To nie jest potrzebne jeśli tylko użytkownik nie jest zalogowany w NIS lub domenie Kerberos. Jeśli wykorzystuje się tą opcję, powinno się także wykonać polecenie `chmod `600` `kdmrc`` z oczywistych przyczyn.

  Domyślnie puste.

`AutoLoginLocked`

- Natychmiastowe zablokowanie automatycznie uruchomionej sesji. Działa tylko dla sesji KDE.

  Domyślna wartość to false (fałsz).

`SessionsDirs`

- Lista katalogów zawierających definicje typów sesji.

  Wartość domyślna to ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

- Plik (względem katalogu domowego użytkownika), do którego przekierowywane jest wyjście sesji.

  Następujące wyrażenia specjalne są zastępowane wartością:

  `%d`

- nazwa bieżącego ekranu

`%u`

- nazwa bieżącego użytkownika

`%r`

- na początku puste. Patrz niżej.

`%%`

- pojedynczy znak `%`

Jeśli utworzona nazwa nie może być bezpiecznie użyta, a specyfikacja zawiera `%``coś` `r`, zostaną wypróbowane inne nazwy - w tym przypadku zamiana `%``coś` `r` na `coś` i liczbę losową.

Wartość domyślna to .xsession-errors.

`ClientLogFallback`

- Wykorzystywane jeśli nie można użyć `ClientLogFile`. Wspierane jest takie same rozwijanie nazwy. Nie wolno tu używać ścieżek względnych.

  Wartość domyślna to /tmp/xerr-%u-%d%-r.

`UseSessReg`

- Określenie czy ma być wykorzystana wbudowana w &kdm; rejestracja w utmp/wtmp/lastlog. Jeśli nie, to uruchomienie narzędzia `sessreg` powinno znaleźć się w skryptach `Startup` i `Reset`. Inna metoda to wykorzystanie modułu pam_lastlog w systemach wykorzystujących PAM.

  Domyślna wartość to true (prawda).

### Klasa sekcji [X-*-Greeter] &kdmrc;

Ta klasa sekcji zawiera opcje związane z konfiguracją okna logowania &kdm; (tzw. greeter).

`GUIStyle`

- Styl stosowany w programie logowania. Wartość pusta oznacza wykorzystanie stylu domyślnego, którym obecnie jest `Plastik`.

  Domyślnie puste.

`ColorScheme`

- Zestaw kolorów dla ekranu logowania. Wartość pusta oznacza wykorzystanie zestawu domyślnego, który obecnie wykorzystuje odcienie szarożółte z niektórymi elementami jasnoniebieskimi i żółtymi.

  Domyślnie puste.

`LogoArea`

- Obiekt, który ma być pokazywany po prawej od pól logowania (jeśli wyłączona jest opcja `UserList`) lub ponad nimi (jeśli opcja `UserList` jest włączona):

  `None`

- brak obiektu

`Logo`

- obraz podany w `LogoPixmap`

`Clock`

- zegar analogowy

Domyślna wartość to Clock.

`LogoPixmap`

- Obraz pokazywany w oknie logowania jeśli `LogoArea` ma wartość `Logo`.

  Domyślnie puste.

`GreeterPos`

- Względne współrzędne (procent rozmiaru ekranu; X,Y) środka ekranu logowania.&kdm; przesuwa okno do wnętrza ekranu jeśli miałoby się znaleźć poza nim.

  Wartość domyślna to 50,50.

`GreeterScreen`

- Ekran logowania powinien być pokazywany na wielu ekranach lub przy wykorzystaniu Xinerama. Licznik zaczyna się od 0. Dla Xinerama odpowiada to porządkowi aktywnych sekcji ServerLayout w pliku XF86Config; -1 oznacza wykorzystanie górnego lewego ekranu, a -2 górnego prawego.

`GreetString`

- Nagłówek ekranu logowania. Pusty oznacza brak nagłówka.

  Następujące pary znaków są zastępowane ich wartością:

  `%d`

- nazwa bieżącego ekranu

`%h`

- nazwa komputera lokalnego, może zawierać nazwę domeny

`%n`

- nazwa lokalnego węzła, zazwyczaj nazwa komputera bez nazwy domeny

`%s`

- system operacyjny

`%r`

- wersja systemu operacyjnego

`%m`

- typ komputera (sprzęt)

`%%`

- pojedyncze `%`

Domyślna wartość to Welcome to %s at %n.

`AntiAliasing`

- Czy czcionki używane w oknie logowania powinny wykorzystywać antyaliasing.

  Domyślna wartość to false (fałsz).

`GreetFont`

- Czcionka używana w nagłówku okna logowania.

  Domyślna wartość to Serif,20,bold.

`StdFont`

- Zwykła czcionka używana w oknie logowania.

  Wartość domyślna to Sans Serif,10.

`FailFont`

- Czcionka używana w wiadomości Logowanie się nie powiodło.

  Domyślna wartość to Sans Serif,10,bold.

`NumLock`

- Co zrobić z modyfikatorem Num Lock podczas działania programu logowania:

  `Off`

- wyłączyć

`On`

- włączyć

`Keep`

- nie zmieniać jego stanu

Domyślna wartość to Keep.

`Language`

- Język i ustawienia regionalne używane w programie logowania, zakodowane jak w $`LC_LANG`.

  Domyślna wartość to en_US.

`UserCompletion`

- Włączenie automatycznego uzupełniania nazwy użytkownika.

  Domyślna wartość to false (fałsz).

`UserList`

- Pokazywanie listy użytkowników zawierającej nazwę, imię i nazwisko i obrazek.

  Domyślna wartość to true (prawda).

`ShowUsers`

- Ta opcja określa, którzy użytkownicy będą pokazywani w widoku użytkowników (`UserList`) i/lub będą mieli włączone automatyczne uzupełnianie (`UserCompletion`). Jeżeli wartością tej opcji jest `Selected`, to lista użytkowników jest wartością `SelectedUsers`. Jeśli jest to `NotHidden`, pokazywani są wszyscy użytkownicy znalezieni w systemie. Ci podani w `HiddenUsers` są usunięci z tej listy, tak samo jak wszyscy o numerze użytkownika większym niż podany w `MaxShowUID` oraz ci o numerze niezerowym i mniejszym od `MinShowUID`. Elementy list `SelectedUsers` i `HiddenUsers` rozpoczynające się od `@` oznaczają wszystkich użytkowników należących do określonej grupy. Oprócz tego, jeśli lista użytkowników ma być posortowana alfabetycznie, to włączona powinna być opcja `SortUsers`.

  Domyślna wartość to NotHidden.

`SelectedUsers`

- Zobacz: `ShowUsers`.

  Domyślnie puste.

`HiddenUsers`

- Zobacz: `ShowUsers`.

  Domyślnie puste.

`MinShowUID`

- Zobacz: `ShowUsers`.

`MaxShowUID`

- Zobacz: `ShowUsers`.

  Domyślna wartość to 65535.

`SortUsers`

- Zobacz: `ShowUsers`.

  Domyślna wartość to true (prawda).

`FaceSource`

- Jeśli włączona jest opcja `UserList`, podane jest tu miejsce skąd &kdm; pobiera obrazki:

  `AdminOnly`

- z `<`FaceDir`>/$`USER`.face[.icon]`

`PreferAdmin`

- <`FaceDir`>, jeśli tam nie ma, to $`HOME`

`PreferUser`

- inny sposób

`UserOnly`

- z należącego do użytkownika `$`HOME`/.face[.icon]`

Obrazki mogą być w dowolnym formacie rozpoznawanym przez Qt, ale nazwa pliku musi spełniać oczekiwania &kdm;: `.face.icon` to ikona 48x48, a `.face` obraz 300x300. Obecnie duży obraz jest używany tylko jeśli nie ma małego i jest skalowany w dół. W przyszłości może być wyświetlany w pełnym rozmiarze w oknie logowania lub podpowiedzi.

Domyślna wartość to AdminOnly.

`FaceDir`

- Zobacz: `FaceSource`.

  Domyślna wartość to ${`kde_datadir`}/kdm/faces.

`PreselectUser`

- Użytkownik, który ma być domyślnie wybrany z listy logowania:

  `None`

- nie ma domyślnie wybranego użytkownika

`Previous`

- użytkownik, który ostatnio się zalogował

`Default`

- użytkownik podany w opcji `DefaultUser`

Jeśli włączone jest `FocusPasswd` i jest domyślnie wybrany użytkownik, to kursor zostaje automatycznie umieszczony w polu hasła.

Włączenie automatycznego wyboru użytkownika można uważać za otworzenie luki w zabezpieczeniach, bo daje potencjalnemu napastnikowi prawidłową nazwę użytkownika. Napastnik musi więc tylko zgadnąć hasło. Z drugiej strony, można ustawić `DefaultUser` na nazwę użytkownika, który nie istnieje w systemie.

Domyślna wartość to None.

`DefaultUser`

- Zobacz: `PreselectUser`.

  Domyślnie puste.

`FocusPasswd`

- Zobacz: `PreselectUser`.

  Domyślna wartość to false (fałsz).

`EchoPasswd`

- Jeśli prawda, zamiast wpisywanych znaków hasła są pokazywane koła. W przeciwnym przypadku nie jest pokazywane nic.

  Domyślna wartość to true (prawda).

`UseBackground`

- Jeśli włączone, &kdm; uruchomi program `krootimage` ustawiający tło; w przeciwnym wypadku za tło odpowiedzialny jest program `Setup`.

  Domyślna wartość to true (prawda).

`BackgroundCfg`

- Plik konfiguracyjny dla `krootimage`. Zawiera sekcję o nazwie `[Desktop0]`, tak jak `kdesktoprc`. Opcje tego pliku nie są tu opisane, można zgadnąć ich znaczenie lub skorzystać z Centrum Sterowania.

  Domyślna wartość to ${`kde_confdir`}/kdm/backgroundrc.

`GrabServer`

- Program logowania przejmuje &X-Server; i klawiaturę podczas startu w celu zwiększenia bezpieczeństwa. Ta opcja pozwala określić czy przechwycenie programu &X-Server; ma trwać przez okres czytania nazwy użytkownika i hasła. Jeśli jest włączona, przechwycenie programu &X-Server; kończy się po przechwyceniu klawiatury. W przeciwnym wypadku &X-Server; jest zwalniany dopiero na chwilę przed rozpoczęciem sesji.

  Włączenie tej opcji wyłącza `UseBackground` i `Setup`.

  Domyślna wartość to false (fałsz).

`GrabTimeout`

- Ta opcja określa maksymalny czas oczekiwania &kdm; na zakończenie przechwytywania. Proces przechwytywania może się nie powieść jeśli inny klient X posiada ten &X-Server; lub klawiaturę lub jeśli opóźnienia sieci są bardzo duże. Czas oczekiwania należy zwiększać ostrożnie, bo użytkownik może być oszukany przez wyświetlenie mu podobnie wyglądającego okna. Jeśli przechwycenie się nie uda, &kdm; ponownie uruchamia &X-Server; (jeśli to możliwe) i sesję.

  Domyślna wartość to 3.

`AuthComplain`

- Ostrzegaj, jeśli ekran nie jest uwierzytelniony. Taki przypadek może mieć miejsce jeśli

  - nie można utworzyć pliku autoryzacji dla lokalnego programu &X-Server;,

  - zdalny ekran z &XDMCP; nie żądał uwierzytelniania lub

  - ekran jest odległym ekranem podanym w `StaticServers`.

  Domyślna wartość to true (prawda).

`LoginMode`

- Określenie czy programy logowania na ekranach lokalnych powinny uruchamiać program wyboru komputera (zdalnie), czy też program logowania (lokalnie) i czy mogą przełączać się między tymi dwoma trybami.

  `LocalOnly`

- dozwolone tylko logowanie lokalne

`DefaultLocal`

- uruchomienie w trybie lokalnym, ale dozwolone przełączanie do trybu zdalnego

`DefaultRemote`

- inny sposób

`RemoteOnly`

- tylko wybór zdalnego komputera

Domyślna wartość to LocalOnly.

`ChooserHosts`

- Lista komputerów dodawanych automatycznie do menu logowania zdalnego. Nazwa specjalna `*` oznacza rozgłaszanie. Nie ma efektu jeśli wartością `LoginMode` jest `LocalOnly`.

  Wartość domyślna to *.

`ForgingSeed`

- Ta liczba jest używana jako ziarno generatora pseudolosowego przy tworzeniu typu sesji itd nieistniejących użytkowników. Utrudnia to atakującemu stwierdzenie, którzy użytkownicy istnieją w rzeczywistości. Ta wartość powinna być losowa, ale stała w domenie logowania.

`ShowLog`

- Włączenie wbudowanego w &kdm; programu `xconsole`. Jest to możliwe tylko dla jednego ekranu na raz. Ta opcja jest dostępna tylko jeśli podczas budowania &kdm; skrypt `configure` został uruchomiony z parametrem `--enable-kdm-xconsole`.

  Domyślna wartość to false (fałsz).

`LogSource`

- Źródła danych dla wbudowanego w &kdm; programu `xconsole`. Jeśli puste, następuje żądanie przekierowanie dzienników z `/dev/console`. Nie ma znaczenia jeśli wyłaczona jest opcja `ShowLog`.

  Domyślnie puste.

`PluginsLogin`

- Miejsce na podanie wtyczek konwersacji dla okna logowania. Pierwsza na liście jest wybrana na początku. Wtyczki można podawać za pomocą tylko ich nazw (które są rozwijane do `$`kde_modulesdir`/kgreet_`nazwa``) lub pełnych ścieżek.

  Wtyczki konwersacji to moduły programu logowania, które pobierają od użytkownika dane logowania. Obecnie domyślnie w &kde; jest dostępna tylko wtyczka `classic`, która pokazuje dobrze znane okno z pytaniem o nazwę użytkownika i hasło.

  Domyślna wartość to classic.

`PluginsShutdown`

- To samo co `PluginsLogin`, ale dla okna zamykania systemu.

  Domyślna wartość to classic.

`PluginOptions`

- Lista opcji o formacie `klucz``=``wartość`. Wtyczki konwersacji mogą sprawdzać te ustawienia; nazwy kluczy są określane przez wtyczki.

  Domyślnie puste.

`AllowConsole`

- Pokazanie akcji Tryb konsoli w programie logowania (jeśli skonfigurowane jest `ServerTTY`/`ConsoleTTYs`).

  Domyślna wartość to true (prawda).

`AllowClose`

- Pokazanie akcji Ponowne uruchomienie serwera X/Zamknij połączenie w programie logowania.

  Domyślna wartość to true (prawda).

`Preloader`

- Program uruchamiany kiedy program logowania jest widoczny. Jego zadaniem jest wczytanie tyle danych sesji (najbardziej prawdopodobnej) ile to możliwe.

  Domyślnie puste.

`UseTheme`

- Czy program logowania powinien używać motywów.

  Domyślna wartość to false (fałsz).

`Theme`

- Motyw używany przez program logowania. Może wskazywać na katalog lub plik XML.

  Domyślnie puste.

## Miejsce na listę stale uruchomionych programów &X-Server;

Każdy wpis listy `StaticServers` określa ekran nie wykorzystujący &XDMCP;, który ma być stale zarządzany. Ta metoda jest zazwyczaj stosowana tylko dla lokalnych programów &X-Server; uruchamianych przez &kdm;, ale &kdm; może zarządzać zewnętrznie uruchomionymi (odległymi) programami &X-Server;, niezależnie od tego czy działają na komputerze lokalnym czy zdalnym.

Formalna składnia to

    nazwa ekranu [_klasa ekranu]

dla wszystkich programów &X-Server;. Odległe ekrany odróżniają się posiadaniem nazwy komputera w nazwie ekranu; może to być także `localhost`.

`Nazwa ekranu` musi być możliwa do przekazania jako wartość parametru `-display` programu X. Ten ciąg jest używany do tworzenia zależnych od ekranu nazw sekcji, więc należy uważać, żeby nazwy do siebie pasowały. Nazwy ekranów &XDMCP; pochodzą od adresu ekranu uzyskiwanego podczas odwrotnego odwzorowania nazw. Dla celów konfiguracyjnych przedrostek `localhost` w nazwach lokalnych ekranów &XDMCP; nie jest usuwany, co pozwala na odróżnienie ich od lokalnych programów &X-Server; uruchomionych przez &kdm;.

Część `klasa ekranu` jest też używana w sekcjach dotyczących ekranu. Jest to użyteczne jeśli ma się wiele podobnych ekranów (na przykład zbiór X-terminali) i potrzeba ustawić opcje dla całej ich grupy. Kiedy używa się &XDMCP;, ekran musi mieć klasę ekranów, więc dokumentacja każdego X terminala powinna zawierać klasę ekranu danego urządzenia. Jeśli tak nie jest, można uruchomić &kdm; w trybie rozwiązywania problemów (debug) i użyć polecenia `grep` na logach w poszukiwaniu ciągu class.

Ekrany podane w `ReserveServers` nie zostaną uruchomione na początku działania &kdm-dopelniacz;, ale dopiero po żądaniu otrzymanym z gniazda sterującego. Jeśli podane są rezerwowe ekrany, menu &kde; będzie posiadało na dole element Uruchom nową sesję. Jego użycie powoduje zarezerwowanie ekranu z nową sesją logowania. Monitor przełączy się na nowy ekran. Na zalogowanie się jest minuta. Jeśli nie ma więcej zarezerwowanych ekranów to ten element menu jest zablokowany.

Kiedy &kdm; rozpoczyna sesję, tworzy dane uwierzytelniania dla programu &X-Server;. W przypadku serwerów lokalnych &kdm; przekazuje ``-auth` ``nazwa_pliku``` do wiersza poleceń programu &X-Server; wskazując mu dane uwierzytelniania. W przypadku ekranów &XDMCP;, &kdm; przekazuje dane uwierzytelniania do programu &X-Server; za pomocą wiadomości &XDMCP; Accept.

## Kontrola dostępu &XDMCP;

Plik podany w opcji `AccessFile` zawiera informacje wykorzystywane przez &kdm; do kontroli dostępu z ekranów wysyłających żądania za pomocą &XDMCP;. Plik zawiera cztery typy wpisów: wpisy kontrolujące odpowiedzi na żądania typu Direct i Broadcast, wpisy kontrolujące odpowiedzi na żądania typu Indirect, definicje makr dla wpisów typu Indirect i wpisy określające to, na którym interfejsie sieciowym &kdm; nasłuchuje żądań &XDMCP;. Puste wiersze są ignorowane, `#` traktowany jest jako znacznik komentarza powodujący ignorowanie reszty wiersza, a `\` powoduje ignorowanie następującego dalej znaku nowego wiersza, co pozwala na zajmującą wiele wierszy listę komputerów.

Format wpisów typu Direct jest prosty, składa się z nazwy komputera lub wzorca porównywanego z nazwą komputera, na którym znajduje się ekran. Wzorce różnią się od nazw komputerów zawieraniem jednego lub więcej meta znaku; `*` oznacza każdą sekwencję 0 lub więcej znaków, a `?` pojedynczy znak. Jeśli wpis jest nazwą komputera, to wszystkie porówniania dotyczą adresów sieciowych, może być więc użyta każda nazwa, którą daje się zamienić na poprawny adres sieciowy. Używany jest tylko pierwszy uzyskany adres. W przypadku wzorców do porównań używane są tylko nazwy kanoniczne, trzeba się więc upewnić, czy nie próbuje się porównywać aliasów. Nazwy komputerów z żądań &XDMCP; zawsze zawierają lokalną domenę, nawet jeśli odwrotne odwzorowanie nazwy zwraca krótką formę nazwy. Można więc używać wzorców dla lokalnej domeny. Poprzedzenie wpisu znakiem `!` powoduje wyłączenie nazwy, która miała być porównywana. Aby wysyłane były tylko odpowiedzi na żądania typu Direct o nazwę komputera lub wzorzec można użyć słowa kluczowego `NOBROADCAST`. Taka możliwość pozwala uniknąć pokazywania serwera z programem &kdm; w menu bazujących na żądaniach typu Broadcast.

Wpis Indirect zawiera także nazwę komputera lub wzorzec, ale dalej następuje lista nazw komputerów lub makr, do których żądania mają być przekazywane. WpisyIndirect mogą być także wyłączające, w takich przypadkach (poprawna) nazwa komputera musi być podana w takiej formie, żeby wpis był odróżnialny od podobnego, ale typu Direct. Jeśli &kdm; jest skompilowany z obsługą IPv6, lista adresów, do których są przekazywane żądania może zawierać także adresy grup multicast. Jeśli w wierszu zawierającym nazwę komputera znajduje się słowo kluczowe `CHOOSER`, żądania Indirect nie są przekazywane, a zamiast tego pokazywane jest okno logowania. Program logowania będzie wysyłał żądania typu Direct do każdego pozostałego komputera z listy. Dla tych, które odpowiedzą będzie oferował menu. Lista komputerów może zawierać słowo kluczowe `BROADCAST`, co spowoduje wysyłanie także żądania typu Broadcast. W niektórych systemach pakiety UDP nie mogą być rozgłoszeniowe, wtedy ta właściwość nie będzie działać.

Podczas sprawdzania dostępu dla konkretnego komputera sprawdzany jest każdy wpis. Pierwszy dopasowany określa odpowiedź. Wpisy typów Direct i Broadcast są ignorowane podczas poszukiwania wpisu typu Indirect i odwrotnie.

Definicja makra zawiera nazwę makra i listę nazw komputerów i innych makr, na które rozwija się to makro. Aby rozróżnić makra od nazw komputerów nazwy makr zaczynają się od znaku `%`.

Ostatnim typem wpisu jest dyrektywa `LISTEN`. Składania to

     LISTEN [interfejs [lista multicast]]

Jeśli podany jest jeden lub więcej wiersz `LISTEN`, &kdm; nasłuchuje na żądania &XDMCP; tylko na podanych interfejsach. `interfejs` może być nazwą komputera lub adresem IP reprezentującym interfejs sieciowy na tym komputerze lub znakiem specjalnym `*` oznaczającym wszystkie dostępne interfejsy sieciowe. Jeśli w wierszu `LISTEN` podany jest adres grupy multicast, &kdm; dołącza do grupy na podanym interfejsie. W przypadku multicastu w IPv6 IANA przypisało zakres adresów ff0`X`:0:0:0:0:0:0:12b &XDMCP;. `X` w przedrostku można zastąpić każdym poprawnym identyfikatorem zakresu, takim jak 1 dla Node-Local, 2 dla Link-Local, 5 dla Site-Local i tak dalej (więcej informacji i definicje zakresów można znaleźć w IETF RFC 2373 lub dokumentach go zastępujących). &kdm; domyślnie nasłuchuje na adresie zakresu Link-Local ff02:0:0:0:0:0:0:12b, żeby możliwie dokładnie odwzorować rozgłaszanie w podsieci IPv4. Jeśli nie ma wierszy `LISTEN`, &kdm; nasłuchuje na wszystkich interfejsach i dołącza się do domyślnej grupy multicast IPv6 &XDMCP; (jeśli skompilowano go z obsługą IPv6). Wyłączenie nasłuchiwania &XDMCP; jest możliwe za pomocą wiersza `LISTEN` bez żadnego adresu. Preferowane jest jednak użycie `[Xdmcp]` `Enable`.

## Dodatkowe programy

Następujące programy są uruchamiane przez &kdm; na różnych etapach sesji. Zazwyczaj są to skrypty powłoki.

Program konfiguracyjny, uruchamiający i kończący (Setup, Startup i Reset) są uruchamiane jako `root`, więc używając je trzeba brać pod uwagę bezpieczeństwo. Ich pierwszym argumentem jest `auto` jeśli sesja jest wynikiem automatycznego logowania. W przeciwnym wypadku nie są do nich przekazywane żadne argumenty.

### Program konfiguracyjny

Program `Xsetup` jest uruchamiany, kiedy działa już lub został ponownie uruchomiony &X-Server;, ale przed pokazaniem okna logowania. Jest to miejsce na zmianę tła (jeśli wyłączone jest `UseBackground`) lub pokazanie innych okien, które mają być na ekranie razem z oknem logowania.

Oprócz zmiennych środowiska podanych w `ExportList`, przekazywane są także:

DISPLAY

- nazwa związanego ekranu

PATH

- wartość `SystemPath`

SHELL

- wartość `SystemShell`

XAUTHORITY

- może być ustawione na plik uwierzytelniania

DM_CONTROL

- wartość `FifoDir`

&kdm; przechwytuje klawiaturę, więc inne okna nie będą otrzymywać informacji o naciśniętych klawiszach. Mogą wykorzystywać mysz; uwaga na luki w zabezpieczeniach z tym związane. Jeśli ustawione jest `GrabServer`, to programowi `Xsetup` nie uda się podłączenie do ekranu. Zasoby dla tego programu mogą być umieszczone w pliku o nazwie określonej przez opcję `Resources`.

### Program uruchamiający

Program `Xstartup` jest uruchamiany jako `root` podczas logowania się użytkownika. Jest to miejsce na polecenia dodające wpisy do `utmp` (może być tu przydatny program `sessreg`), montujące katalogi domowe użytkowników z serwerów plików lub też przerywające sesję jeśli niektóre wymagania nie są spełnione (we współczesnych systemach większość z tych zadań jest wykonywana przez moduły PAM).

Oprócz zmiennych środowiska podanych w `ExportList`, przekazywane są także:

DISPLAY

- nazwa związanego ekranu

HOME

- początkowy katalog roboczy użytkownika

LOGNAME

- nazwa użytkownika

USER

- nazwa użytkownika

PATH

- wartość `SystemPath`

SHELL

- wartość `SystemShell`

XAUTHORITY

- może być ustawione na plik uwierzytelniania

DM_CONTROL

- wartość `FifoDir`

&kdm; czeka na zakończenie pracy tego programu przed rozpoczęciem sesji użytkownika. Jeśli wartość wyjściowa programu jest niezerowa, &kdm; przerwie sesję i rozpocznie kolejny cykl uwierzytelniania.

### Program sesji

Program `Xsession` to polecenie uruchamiane jako sesja użytkownika. Działa z uprawnieniami użytkownika. Jako pierwszy argument przekazywane jest jedno ze słów kluczowych `failsafe`, `default` lub `custom`, albo ciąg znaków przekazywanych do polecenia `eval` powłoki Bourne'a.

Oprócz zmiennych środowiska podanych w `ExportList`, przekazywane są także:

DISPLAY

- nazwa związanego ekranu

HOME

- początkowy katalog roboczy użytkownika

LOGNAME

- nazwa użytkownika

USER

- nazwa użytkownika

PATH

- wartość `UserPath` (lub `SystemPath` dla sesji użytkownika `root`)

SHELL

- domyślna powłoka użytkownika

XAUTHORITY

- może wskazywać niestandardowy plik uwierzytelniania

KRBTKFILE

- może być ustawiony na pamięć podręczną uwierzytelniania za pomocą Kerberos4

KRB5CCNAME

- może być ustawiony na pamięć podręczną uwierzytelniania za pomocą Kerberos5

DM_CONTROL

- wartość `FifoDir`

XDM_MANAGED

- zawiera listę oddzielonych przecinkami parametrów, które mogą być interesujące dla sesji, takie jak to, która wtyczka konwersacji została użyta przy logowaniu

DESKTOP_SESSION

- nazwa sesji wybranej do uruchomienia przez użytkownika

### Program resetujący

Symetrycznie do `Xstartup`, `Xreset` jest uruchamiany po zakończeniu sesji użytkownika. Wykonywany jako `root`; powinien zawierać polecenia wycofujące efektypoleceń z `Xstartup`, usuwające wpisy z `utmp` lub odmontowujące katalogi z serwera plików.

Zmienne środowiska przekazywane do `Xstartup` są też przekazywane do `Xreset`.