Menedżer pulpitów X (ang. X Display Manager XDM) jest opcjonalną częścią Systemu okien X, wykorzystywaną do zarządzania sesjami logowania. Znajduje on zastosowanie w kilku typach sytuacji, włączając w to zarówno minimalistyczne "Terminale X", komputery prywatne, jak również ogromne sieciowe serwery graficzne. Z uwagi na fakt, iż System okien X jest niezależny od wykorzystywanej sieci jak i protokołu, istnieje wiele możliwych konfiguracji klientów i serwerów na różnych maszynach połączonych ze sobą za pomocą sieci. XDM dostarcza graficznego interfejsu pozwalającego wybrać, z którym serwerem się połączymy, jak i przeprowadzić autoryzację, np. za pomocą kombinacji loginu i hasła.
XDM można postrzegać jako narzędzie dostarczające użytkownikowi takich samych funkcjonalności jak getty(8) (szczegółowy opis zawiera Sekcja 22.3.2, "Configuration"). Oznacza to, że to właśnie menedżer pulpitów w imieniu użytkownika dokonuje logowania do systemu i uruchamia menedżera sesji (z reguły menedżera okien). Następnie, XDM oczekuje aż program zakończy działanie, sygnalizując tym samym, że użytkownik skończył pracę i menedżer pulpitów powinien go wylogować z systemu. W tym momencie XDM może ponownie wyświetlić ekran logowania i wyboru środowiska graficznego oczekująć na kolejnego użytkownika.
Demon XDM znajduje się
w /usr/X11R6/bin/xdm
. Program ten może zostać
uruchomiony w dowolnej chwili przez użytkownika root
i od razu rozpocznie zarządzanie ekranami X w lokalnym systemie.
Jeśli jednak XDM ma być uruchamiany przy każdym
starcie systemu, najlepszym rozwiązaniem jest dodanie odpowiedniego wpisu
do pliku /etc/ttys
. Sekcja 22.3.2.1, "Adding an Entry to /etc/ttys
" zawiera więcej informacji odnośnie formatu i wykorzystania
tego pliku. W domyślnej wersji plik /etc/ttys
zawiera wiersz
uruchamiający demona XDM w wirtualnym terminalu:
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
Domyślnie, wiersz ten jest nieaktywny. By go uaktywnić należy zmienić zawartość 5
kolumny z off
na on
i ponownie uruchomić init(8)
wykorzystująć wskazówki z Sekcja 22.3.2.2, "Force init
to Reread
/etc/ttys
". Pierwsza kolumna - nazwa terminala,
którym będzie zarządzał dany program - to ttyv8
. Oznacza to,
że XDM będzie pracował na dziewiątny wirtualnym
terminalu.
W katalogu /usr/X11R6/lib/X11/xdm
znajdują się pliki konfiguracyjne
XDM. Pliki te można wykorzystać do zmiany zachowania i wyglądu
menedżera ekranów. Z reguły są to następujące pliki:
Plik | Opis |
---|---|
Xaccess | Zestaw reguł autoryzacji klientów. |
Xresources | Domyślne wartości zasobów X. |
Xservers | Lista zdalnych i lokalnych ekranów do zarządzania. |
Xsession | Domyślny skrypt sesji logowania. |
Xsetup_ * | Skrypt uruchamiający aplikacje przed interfejsem logowania. |
xdm-config | Konfiguracja globalna dla wszystkich ekranów danej maszynie. |
xdm-errors | Błędy generowane przez program serwera. |
xdm-pid | Identyfikator procesu aktualnie działającego XDM. |
W tym katalogu znajduje się również kilka skryptów i programów wykorzystywanych do konfiguracji pulpitów w trakcie działania XDM. Zadanie każdego z tych plików zostanie pokrótce omówione. Dokładna składnia i wykorzystanie wszystkich tych plików znajduje się w xdm(1).
W domyślnej konfiguracji pojawi się prostokątne okno logowania z nazwą maszyny wypisaną dużą czcionką na samej górze, wraz z polami "Login:" i "Password:". Jest to dobry punkt wyjściowy do modyfikacji wyglądu i zachowania ekranów XDM.
Protokół wykorzystywany do łączenia z puplitami obsługiwanymi przez
XDM nosi nazwę X Display Manager Connection Protocol
(XDMCP). Plik ten jest zestawem reguł do kontroli połączeń XDMCP ze zdalnych
maszyn. Z reguły jest on ignorowany, chyba że w pliku
xdm-config
zostanie włączona opcja nasłuchiwania
zdalnych połączeń. Domyślnie nie zezwala się na połączenia z innych
klientów.
Jest to plik domyślnej konfiguracji programu wyboru puplitu i ekranu logowania. W tym właśnie pliku można modyfikować ich wygląd. Format pliku jest identyczny z formatem app-defaults opisanym w dokumentacji X11.
Domyślny skrypt sesji XDM uruchamiany
po zalogowaniu się użytkownika. Z reguły każdy użytkownik posiada
zmodyfikowany według własnego upodobania skrypt sesji w pliku
~/.xsession
, uruchamiany zamiast tego skryptu.
Skrypty te zostaną automatycznie uruchomione przed wyświetleniem
interfejsu logowania i wyboru pulpitu. Dla każdego wykorzystywanego
ekranu znajduje się tu plik o nazwie Xsetup_
wraz
z numerem lokalnego ekranu (na przykład
Xsetup_0
). Z reguły skrypty te uruchamiają jeden
bądź dwa programy w tle, jak np. xconsole
.
Plik ustawień w formacie app-defaults, mający zastosowanie do wszystkich puplitów zarządzanych przez menedżera.
Plik ten zawiera wydruki wyjściowe serwerów X, które
XDM stara się uruchomić. Jeśli w trakcie
uruchamiania pulpitu z jakiegoś powodu proces ten zawiesi się,
najlepszym miejscem poszukiwania komunikatów błędów jest właśnie ten plik.
Komunikaty te są również umieszczane w pliku
~/.xsession-errors
użytkownika dla danej
sesji.
By umożliwić innym klientom łączenie się z serwerem graficznym,
należy zmodyfikować reguły kontroli dostępu i włączyć opcję nasłuchiwania
połączeń. Domyślnie opcja ta jest nie aktywna. Jej aktywacja polega na
odkomentowaniu poniższej linii w pliku xdm-config
:
! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0
Następnie należy ponownie uruchomić XDM. Pamiętajmy,
że komentarze w plikach app-defaults rozpoczynają się od znaku "!"
zamiast typowego "#". Lektura przykładowego pliku Xaccess
oraz podręcznika systemowego xdm(1) może nam pomóc gdy będziemy potrzebować
bardziej surowej kontroli dostępu.
Dostępnych jest kilka alternatyw dla domyślnego menedżera XDM. Jeden z nich - kdm (dostarczany razem z KDE) - został bliżej opisany w tym w dalszej części rozdziału. Menedżer kdm oferuje wiele wizualnych usprawnień i kosmetycznych dodaktów, jak również możliwość wyboru menedżera okien przed zalogowaniem do systemu.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.