# Manual Rujukan Manajer Tampilan GNOME

## Istilah dan Konvensi yang Dipakai di Manual Ini

Manual ini menjelaskan Manajer Tampilan GNOME versi 2.26.0. Terakhir diperbarui pada 02/10/2009.

Chooser/Pemilih - Suatu program yang dipakai untuk memilih suatu host jauh untuk mengelola tampilan dari jauh pada tampilan yang tersambung (`gdm-host-chooser`).

FreeDesktop - Organisasi yang menyediakan standar desktop, seperti misalnya Spesifikasi Entri Desktop yang dipakai oleh GDM. http://www.freedesktop.org.

GDM - Manajer Tampilan GNOME. Dipakai untuk menjelaskan paket perangkat lunak secara utuh.

Greeter/Penyapa - Jendela log masuk grafis (disediakan oleh `gdm-simple-greeter`).

PAM - Pluggable Authentication Mechanism

XDMCP - X Display Manage Protocol

Xserver - Suatu implementasi Sistem X Window. Misalnya Xserver Xorg yang disediakan oleh X.org Foundation http://www.x.org.

Path yang diawali dengan suatu kata yang diapit oleh tanda lebih dari dan kurang dari, posisinya relatif terhadap prefiks instalasi. Artinya `<share>/pixmaps/` mengacu ke `/usr/share/pixmaps` bila GDM ditata dengan `--prefix=/usr`.

## Ringkasan

### Perkenalan

Manajer Tampilan GNOME (GNOME Display Manager, GDM) adalah manajer tampilan yang mengimplementasikan semua fitur signifikan yang diperlukan untuk mengelola tampilan yang tersambung langsung dan jarak jauh. GDM ditulis dari awal dan tidak memuat sebarang kode XDM atau X Consortium.

Catat bahwa GDM dapat dikonfigurasi, dan banyak tatanan konfigurasi memiliki dampak keamanan. Masalah-masalah yang mesti diwaspadai disorot pada dokumen ini.

Mohon dicatat bahwa beberap Sistem Operasi menata GDM untuk berperilaku berbeda dengan nilai bawaan sebagaimana dijelaskan dalam dokumen ini. Bila GDM sepertinya tidak berperilaku seperti yang didokumentasikan, maka periksalah bila ada konfigurasi terkait yang mungkin berbeda dengan yang dijelaskan disini.

Untuk informasi lebih lanjut tentang GDM, silakan mengacu ke situs web projek di http://wiki.gnome.org/Projects/GDM.

Untuk diskusi atau pertanyaan tentang GDM, silakan mengacu ke milis

    gdm-list@gnome.org

. List ini diarsipkan, dan merupakan sumber daya yang bagus untuk memeriksa dan mencari jawaban atas pertanyaan umum. List ini diarsipkan di http://mail.gnome.org/archives/gdm-list/ dan memiliki fasilitas pencarian untuk mencari pesan dengan kata kunci.

Mohon kirim laporan kutu atau permintaan perbaikan ke kategori "gdm" pada http://bugzilla.gnome.org.

### Stabilitas Antar Muka

GDM 2.20 dan sebelumnya mendukung antar muka konfigurasi stabil. Namun, codebase-nya ditulis ulang secara lengkap bagi GDM 2.22, dan tak sepenuhnya kompatibel ke belakang dengan rilis-rilis yang lebih lama. Hal ini sebagian karena berbagai hal bekerja secara berbeda, sehingga beberapa opsi jadi tak masuk akal, sebagian lagi karena sebagian opsi tak pernah masuk akal, dan sebagian karena beberapa fungsionalitas belum diimplementasi ulang.

Antarmuka yang didukung terus secara stabil termasuk skrip Xsession, Init, PreSession, PostSession, dan PostLogin. Beberapa opsi konfigurasi daemon dalam berkas `<etc>/gdm/custom.conf` didukung terus. `~/.dmrc` dan lokasi gambar peramban muka juga masih didukung.

GDM 2.20 dan sebelumnya mendukung kemampuan pengelolaan tampilan berganda dengan kartu grafis yang terpisah seperti yang dipakai pada lingkungan server terminal, log masuk ke jendela melalui program seperti Xnest atau Xephyr, program gdmsetup, tema penyapa berbasis XML, dan kemampuan menjalankan pemilih XDMCP dari layar log masuk. Fitur-fitur tersebut tak ditambahkan kembali selama penulisan ulang 2.22.

### Penjelasan Fungsional

GDM bertanggung jawab mengelola tampilan pada sistem. Ini termasuk mengotentikasi pengguna, memulai sesi pengguna, dan mengakhiri sesi pengguna. GDM dapat ditata dan berbagai cara penataannya diuraikan dalam bagian "Menata GDM" dari dokumen ini. GDM juga membantu pengguna cacat.

GDM menyediakan kemampuan mengelola tampilan konsol utama, dan tampilan yang diluncurkan melalui VT. Ini terpadu dengan program lain, seperti Fast User Switch Applet (FUSA, aplet berganti pengguna secara cepat) dan gnome-screensaver untuk mengelola tampilan berganda pada konsol melalui antar muka Xserver Virtual Terminal (VT). Ini juga dapat mengelola tampilan XDMCP.

Tanpa peduli jenis tampilan, GDM akan melakukan hal berikut ketika mengelola tampilan. Dia akan memulai proses Xserver, lalu menjalankan skrip `Init` sebagai pengguna root, dan mengawali program penyapa pada tampilan.

Program penyapa (greeter) dijalankan sebagai pengguna/grup biasa "gdm". Pengguna dan grup ini dijelaskan dalam bagian "Keamanan" dari dokumen ini. Fungsi utama program penyapa adalah untuk menyediakan mekanisme memilih akun untuk log masuk dan untuk mendorong dialog antara pengguna dan sistem ketika mengotentikasi akun tersebut. Proses otentikasi ini didorong oleh Pluggable Authentication Modules (PAM). Modul PAM menentukan sapaan apa (bila ada) yang ditampilkan ke pengguna untuk mengotentikasi. Pada sistem umum, program penyapa akan meminta nama pengguna dan sandi untuk otentikasi. Namun beberapa sistem mungkin ditata untuk memakai mekanisme pelengkap seperti sidik jari atau pembaca SmartCard. GDM dapat ditata untuk mendukung alternatif tersebut secara paralel dengan ekstensi log masuk penyapa dan opsi `--enable-split-authentication` `./configure`, atau satu setiap saat melalui konfigurasi PAM sistem.

Ekstensi smartcard dapat diaktifkan atau dimatikan melalui kunci gsettings `org.gnome.display-manager.extensions.smartcard.active`.

Serupa dengan itu, ekstensi sidik jari dapat diaktifkan atau dimatikan melalui kunci gsettings `org.gnome.display-manager.extensions.fingerprint.active`.

GDM dan PAM dapat ditata untuk tidak memerlukan masukan, yang akan menyebabkan GDM otomatis log masuk dan memulai suatu sesi, yang dapat berguna bagi beberapa lingkungan, seperti sistem pengguna tunggal atau kios.

Selain otentikasi, program penyapa mengijinkan pengguna memilih sesi mana yang dimulai dan bahasa mana yang dipakai. Sesi didefinisikan oleh berkas yang memiliki akhiran .desktop dan informasi lebih lanjut tentang berkas ini dapat ditemukan dalam bagian "Konfigurasi Bahasa dan Sesi Pengguna GDM" dari dokumen ini. Secara bawaan, GDM ditata untuk menampilkan peramban wajah sehingga pengguna dapat memilih akunnya dengan mengklik pada suatu gambar daripada mesti mengetikkan nama penggunanya. GDM mencatat sesi dan bahasa baku pengguna dalam `~/.dmrc` milik pengguna dan akan memakai baku ini bila pengguna tak memilih sesi atau bahasa dalam GUI log masuk.

Setelah mengotentikasi pengguna, daemon menjalankan skrip `PostLogin` sebagai root, lalu menjalankan skrip `PreSession` sebagai root. Setelah menjalankan skrip tersebut, sesi pengguna dimulai. Ketika pengguna keluar dari sesinya, skrip `PostSession` dijalankan sebagai root. Skrip-skrip tersebut disediakan sebagai kaitan bagi distribusi dan pengguna akhir untuk menggubah bagaimana sesi dikelola. Sebagai contoh, memakai kait tersebut Anda dapat menyiapkan suatu mesin yang membuat direktori $HOME milik pengguna sambil jalan, dan menghapusnya saat log keluar. Perbedaan antara skrip `PostLogin` dan `PreSession` adalah bahwa `PostLogin` dijalankan sebelum pemanggilan pam_open_session sehingga merupakan tempat yang tepat untuk melakukan apapun yang mesti dijalankan sebelum sesi pengguna diinisialisasi. Skrip `PreSession` dipanggil setelah inisialisasi sesi.

### Panel Penyapa

Program penyapa GDM menampilkan suatu panel yang dilabuhkan di dasar layar yang menyediakan fungsionalitas tambahan. Ketika seorang pengguna dipilih, panel mengijinkan pengguna memilih sesi, bahasa, dan tata letak papan tik mana yang dipakai setelah log masuk. Pemilih tata letak papan tik juga mengubah tata letak papan tik yang dipakai ketika mengetikkan sandi Anda. Panel juga memuat wilayah bagi layanan log masuk untuk menampilkan ikon status. Beberapa contoh ikon status termasuk ikon baterai untuk pemakaian baterai sekarang, dan ikon untuk mengaktifkan fitur-fitur aksesibilitas. Program penyapa juga menyediakan tombol-tombol yang memungkinkan pengguna mematikan atau memulai ulang sistem. Mungkin juga untuk menata GDM agar tidak menyediakan tombol matikan dan mulai ulang bila diinginkan. GDM juga dapat ditata melalui PolicyKit (atau melalui RBAC pada Oracle Solaris) untuk menuntut pengguna agar memiliki otorisasi yang sesuai sebelum menerima permintaan mematikan atau memulai ulang.

Perhatikan bahwa fitur tata letak papan tik hanya tersedia pada sistem yang mendukung libxklavier.

### Aksesibilitas

GDM mendukung "Log Masuk Aksesibel", yang memungkinkan pengguna log masuk ke sesi desktop mereka walaupun mereka tak dapat dengan mudah menggunakan layar, tetikus, atau papan tik secara biasa. Tersedia fitur-fitur Teknologi Aksesibilitas seperti papan tik pada layar, pembaca layar, pembesar layar, dan aksesibilitas papan tik Xserver AccessX. Juga dimungkinkan untuk mengaktifkan teks besar atau ikon dan kendali-kendali kontras tinggi, bila diperlukan. Lihat bagian "Konfigurasi Aksesibilitas" dari dokumen untuk informasi lebih lanjut tentang bagaimana berbagai fitur aksesibilitas dapat ditata.

Pada beberapa Sistem Operasi, perlu dipastikan bahwa pengguna GDM adalah anggota dari grup "audio" agar program AT yang memerlukan keluaran audio (seperti misalnya teks-ke-suara) berfungsi.

### Peramban Wajah GDM

Peramban Wajah adalah antar muka yang memungkinkan pengguna memilih nama dengan mengklik gambar. Fitur ini dapat diaktifkan atau dimatikan melalui kunci GSettings org.gnome.login-screen disable-user-list dan bawaannya aktif. Ketika dimatikan, pengguna mesti mengetikkan nama penggunanya secara lengkap. Ketika diaktifkan, ini menampilkan semua pengguna lokal yang dapat log masuk pada sistem (semua akun pengguna yang didefinisikan di dalam berkas /etc/passwd yang memiliki shell yang valid dan UID cukup tinggi) dan pengguna jauh yang baru-baru ini log masuk. Peramban wajah dalam GDM 2.20 dan sebelumnya akan mencoba menampilkan semua pengguna jauh, yang akan menyebabkan masalah kinerja pada pemasangan di enterprise yang besar.

Peramban Wajah ditata untuk menampilkan pengguna yang paling sering log masuk di puncak daftar. Ini membantu memastikan bahwa pengguna yang sering log masuk dapat menemukan gambar log masuk mereka secara cepat.

Peramban Wajah mendukung "pencarian type-ahead" yang secara dinamis memindah pemilihan wajah ketika pengguna mengetikkan ke nama pengguna yang berkaitan dalam daftar. Ini berarti bahwa pengguna dengan nama pengguna yang panjang hanya perlu mengetikkan beberapa karakter pertama dari nama pengguna sebelum butir yang benar dalam daftar menjadi terpilih.

Ikon yang dipakai oleh GDM dapat dipasang secara global oleh sysadmin atau dapat ditempatkan pada direktori rumah pengguna. Bila dipasang secara global mereka mesti ada di direktori `<share>/pixmaps/faces/` dan nama berkas mesti merupakan nama pengguna. Berkas gambar wajah mesti merupakan gambar standar yang dapat dibaca oleh GTK+, seperti misalnya PNG atau JPEG. Ikon wajah yang ditempatkan di direktori wajah global mesti dapat dibaca oleh pengguna GDM.

Bila tak ada ikon global bagi pengguna, GDM akan mencari berkas gambar dalam direktori $HOME pengguna. Pertama kali GDM akan mencari gambar wajah pengguna dalam `~/.face`. Bila tak ditemukan, akan dicoba `~/.face.icon`. Bila masih tak ditemukan, akan dipakai nilai yang didefinisikan bagi "face/picture=" dalam berkas `~/.gnome2/gdm`.

Bila seorang pengguna tak memiliki gambar wajah, GDM akan memakai ikon "stock_person" yang didefinisikan dalam tema GTK+ kini. Bila gambar itu tak didefinisikan, maka akan kembali ke gambar wajah generik.

Perhatikan bahwa memuat dan menskalakan ikon wajah yang terletak di direktori rumah pengguna jauh bisa merupakan tugas yang sangat menghabiskan waktu. Karena tak praktis untuk memuat gambar lewat NIS atau NFS, GDM tak mencoba memuat gambar wajah dari direktori rumah jauh.

Ketika peramban dinyalakan, nama pengguna yang valid pada komputer dipaparkan untuk dilihat oleh semua orang. Bila XDMCP diaktifkan, maka nama pengguna dipaparkan ke pengguna jauh. Ini tentu saja membatasi keamanan karena pengguna yang berniat jahat tak perlu lagi menebak nama pengguna yang valid. Dalam beberapa lingkungan yang sangat terbatas, peramban wajah mungkin tidak pada tempatnya.

### XDMCP

Daemon GDM dapat ditata untuk mendengarkan dan mengelola permintaan X Display Manager Protocol (XDMCP) dari tampilan jauh. Secara baku dukungan XDMCP dimatikan, tapi dapat dinyalakan bila dikehendaki. Bila GDM dibangun dengan dukungan TCP Wrapper, maka daemon hanya akan memberikan akses ke host yang dinyatakan pada bagian layanan GDM dalam berkas konfigurasi TCP Wrapper.

GDM menyertakan beberapa penangkal yang membuatnya lebih kebal terhadap serangan denial of service pada layanan XDMCP. Banyak parameter protokol, tenggang waktu jabat tangan, dsb. dapat ditala secara halus. Konfigurasi bawaan mestinya berjalan dengan cukup baik pada kebanyakan sistem.

Secara baku GDM mendengarkan permintaan XDMCP pada port UDP normal yang dipakai oleh XDMCP, port 177, dan akan menjawab permintaan QUERY dan BROADCAST_QUERY dengan mengirim paket WILLING ke peminta.

GDM juga dapat ditata untuk menjawab permintaan INDIRECT dan menyajikan suatu pemilih host ke tampilan jauh. GDM akan mengingat pilihan pengguna dan meneruskan permintaan seterusnya ke pengelola yang dipilih. GDM juga mendukung ekstensi ke protokol yang membuatnya melupakan pengalihan sekali koneksi pengguna sukses. Ekstensi ini hanya didukung bila kedua daemon adalah GDM. Ini transparan dan akan diabaikan oleh XDM atau daemon lain yang mengimplementasikan XDMCP.

Bila XDMCP sepertinya tak bekerja, pastikan bahwa semua mesin dinyatakan dalam `/etc/hosts`.

Lihat ke bagian "Keamanan" untuk informasi tentang aspek-aspek keamanan ketika memakai XDMCP.

### Log

GDM memakai syslog untuk mencatat galat dan status. Itu juga dapat mencatat informasi pengawakutuan, yang dapat berguna untuk menelusuri masalah bila GDM tak bekerja dengan baik. Keluaran awakutu dapat diaktifkan dengan menata kunci debug/Enable ke "true" dalam berkas `<etc>/gdm/custom.conf`.

Keluaran dari berbagai Xserver disimpan di dalam direktori log GDM, yang biasanya `<var>/log/gdm/`. Sebarang pesan Xserver disimpan ke berkas yang dikaitkan dengan nilai tampilan, `<display>.log`.

Keluaran sesi disalurkan melalui daemon GDM ke berkas `~/`$XDG_CACHE_HOME`/gdm/session.log` yang biasanya mengembang menjadi `~/.cache/gdm/session.log`. Berkas ditimpa setiap kali log masuk, sehingga log keluar dan masuk lagi ke pengguna yang sama melalui GDM akan menyebabkan sebarang pesan dari sesi sebelumnya hilang.

Catat bahwa bila GDM tak bisa membuat berkas ini karena beberapa alasan, maka berkas cadangan akan dibuat dengan nama `~/`$XDG_CACHE_HOME`/gdm/session.log.XXXXXXXX` dimana `XXXXXXXX` adalah beberapa karakter acak.

### Pindah Pengguna Dengan Cepat

GDM mengijinkan beberapa pengguna log masuk bersamaan. Setelah salah satu pengguna log masuk, pengguna lain dapat log masuk melalui Penukar Pengguna pada Panel GNOME, atau dari tombol "Ganti Pengguna" pada dialog Kunci Layar dari Screensaver GNOME. Sesi aktif dapat ditukar bolak balik memakai mekanisme yang sama. Perhatikan bahwa beberapa distribusi mungkin tidak menambahkan Penukar Pengguna ke konfigurasi panel bawaan. Itu dapat ditambahkan memakai menu konteks panel.

Catat bahwa fitur ini tersedia pada sistem yang mendukung Terminal Virtual. Fitur ini tak akan berfungsi bila Terminal Virtual tak tersedia.

## Keamanan

### Grup dan Pengguna GDM

Untuk alasan keamanan, id pengguna dan grup yang terdedikasi disarankan untuk operasi yang benar. Pengguna dan grup ini biasanya "gdm" pada kebanyakan sistem, tapi dapat ditata ke sebarang pengguna atau grup. Semua program GUI GDM dijalankan sebagai pengguna ini, sehingga program yang berinteraksi dengan pengguna dijalankan dalam suatu kotak pasir. Pengguna dan grup ini mesti memiliki hak terbatas.

Satu-satunya hak khusus yang diperlukan oleh pengguna "gdm" adalah kemampuan membaca dan menulis berkas Xauth ke direktori `<var>/run/gdm` directory. Direktori `<var>/run/gdm` mesti dimiliki oleh root:gdm dan hak 1777.

Anda jangan, dalam keadaan apapun, menata pengguna/grup GDM ke sesuatu yang dapat diakses dengan mudah oleh pengguna lain, seperti misalnya pengguna `nobody`. Sebarang pengguna yang mendapat akses ke kunci Xauth dapat menyadap dan mengendalikan program GUI yang berjalan pada sesi terkait atau melakukan serangan denial-of-service padanya. Penting untuk memastikan bahwa sistem ditata secara benar sehingga hanya pengguna "gdm" punya akses ke berkas tersebut dan tak mudah untuk log masuk ke akun ini. Sebagai contoh, akun mesti disiapkan untuk tak memiliki sandi atau mengijinkan pengguna bukan root untuk log masuk ke akun.

Konfigurasi penyapa GDM disimpan di dalam GConf. Untuk mengijinkan pengguna GDM menulis konfigurasi, pengguna "gdm" perlu memiliki direktori $HOME yang dapat ditulisi. Pengguna dapat menata konfigurasi bawaan GConf sesuai keinginan untuk menghindari perlunya menyediakan pengguna "gdm" dengan direktori $HOME yang dapat ditulisi. Namun beberapa fitur GDM mungkin mati bila tak bisa menulis informasi keadaan ke konfigurasi GConf.

### PAM

GDM memakai PAM untuk otentikasi log masuk. PAM kependekan dari Pluggable Authentication Module (modul otentikasi yang dapat ditempelkan), dan dipakai oleh kebanyakan program yang meminta otentikasi pada komputer Anda. Itu mengijinkan administrator untuk menata perilaku otentikasi spesifik bagi program log masuk yang berbeda (seperti misalnya ssh, log masuk GUI, screensaver, dsb.)

PAM itu rumit dan dapat ditata dalam sangat banyak cara, dan dokumentasi ini bukan bertujuan untuk menjelaskan hal ini secara rinci. Alih-alih, ini ditujukan untuk memberi ringkasan tentang bagaimana konfigurasi PAM berhubungan dengan GDM, bagaimana PAM umumnya ditata dengan GDM, dan masalah-masalah yang telah diketahui. Diharapkan bahwa orang yang perlu melakukan konfigurasi PAM akan membaca lebih jauh dokumentasi PAM untuk memahami bagaimana menata PAM dan memahami istilah-istilah yang dipakai pada bagian ini.

Konfigurasi PAM memiliki antar muka yang berbeda namun mirip pada Sistem Operasi yang berbeda, sehingga periksalah halaman man pam.d atau pam.conf untuk rinciannya. Pastikan bahwa Anda membaca dokumentasi PAM dan merasa nyaman dengan implikasi keamanan dari perubahan apapun yang hendak Anda lakukan pada konfigurasi Anda.

Perhatikan bahwa, secara baku, GDM memakai nama layanan PAM "gdm" untuk log masuk normal dan nama layanan PAM "gdm-autologin" untuk log masuk otomatis. Layanan-layanan ini mungkin tak didefinisikan dalam berkas konfigurasi pam.d atau pam.conf Anda. Bila tak ada entri, maka GDM akan memakai perilaku PAM bawaan. Pada kebanyakan sistem ini mestinya berjalan baik. Namun, fitur log masuk otomatis mungkin tak bekerja bila layanan gdm-autologin tak terdefinisi.

Skrip `PostLogin` dijalankan sebelum pam_open_session dipanggil, dan skrip `PreSession` dipanggil setelahnya. Ini memungkinkan administrator sistem untuk menambahkan sebarang penskripan ke proses log masuk sebelum atau setelah PAM menginisialisasi sesi.

Bila Anda hendak membuat GDM bekerja dengan mekanisme otentikasi jenis lain (seperti misalnya sidik jari atau pembaca SmartCard), maka Anda mesti mengimplementasikan ini memakai modul layanan PAM bagi jenis otentikasi yang diinginkan daripada mencoba mengubah kode GDM secara langsung. Lihatlah dokumentasi PAM pada sistem Anda. Bagaimana melakukan hal ini sering didiskusikan di milis

    gdm-list@gnome.org

, sehingga Anda dapat mengacu ke arsip milis untuk informasi lebih lanjut.

PAM memiliki beberapa keterbatasan dalam kemampuan bekerja dengan banyak tipe otentikasi pada saat yang sama, seperti mendukung kemampuan menerima SmartCard dan kemampuan mengetikkan nama pengguna serta sandi ke dalam program log masuk. Ada teknik-teknik yang dipakai untuk membuat ini bekerja, dan yang terbaik adalah meneliti bagaimana masalah ini secara umum dipecahkan ketika menyiapkan konfigurasi seperti itu.

Bila log masuk otomatis tak bekerja pada suatu sistem, periksa apakah stack PAM "gdm-autologin" didefinisikan di dalam konfigurasi PAM. Agar ini bekerja, perlu memakai modul PAM yang tak melakukan otentikasi, atau yang sekedar mengembalikan PAM_SUCCESS dari semua antar muka publiknya. Dengan asumsi bahwa sistem Anda memiliki modul PAM pam_allow.so yang melakukan hal ini, konfigurasi PAM yang mengaktifkan "gdm-autologin" akan terlihat seperti ini:

           gdm-autologin auth  required    pam_unix_cred.so.1
           gdm-autologin auth  sufficient  pam_allow.so.1
           gdm-autologin account  sufficient  pam_allow.so.1
           gdm-autologin session  sufficient  pam_allow.so.1
           gdm-autologin password  sufficient  pam_allow.so.1

Penataan di atas akan menyebabkan tiadanya entri lastlog. Bila suatu entri lastlog dikehendaki, maka gunakan yang berikut bagi sesi:

           gdm-autologin session required pam_unix_session.so.1

Bila komputer dipakai oleh beberapa orang, yang membuat log masuk otomatis tidak cocok, Anda mungkin hendak mengijinkan beberapa pengguna untuk log masuk tanpa mengetikkan sandi. Fitur ini dapat diaktifkan sebagai opsi per pengguna dalam perkakas users-admin dari gnome-system-tools; ini dicapai dengan memeriksa apakah pengguna tersebut anggota dari grup Unix bernama "nopasswdlogin" sebelum menanyakan sandi. Agar ini bekerja, berkas konfigurasi PAM bagi layanan "gdm" mesti memuat suatu baris seperti:

          gdm auth  sufficient  pam_succeed_if.so  user ingroup nopasswdlogin

### utmp dan wtmp

GDM menjangkitkan entri Basis Data Akunting Pengguna utmp dan wtmp saat log masuk dan log keluar sesi. Basis data utmp memuat informasi akunting dan akses pengguna yang diakses oleh perintah seperti `finger`, `last`, `login`, dan `who`. Basis data wtmp memuat riwayat informasi akunting dan akses pengguna bagi basis data utmp. Lihatlah halaman man utmp dan wtmp pada sistem Anda untuk informasi lebih jauh.

### Skema Otentikasi Xserver

Berkas otorisasi Xserver disimpan dalam subdirektori `<var>/run/gdm` yang baru dibuat saat awal mula. Berkas-berkas ini dipakai untuk menyimpan dan berbagi "sandi" antara klien X dan Xserver. "Sandi" ini unik bagi setiap sesi log masuk, sehingga pengguna dari sesi satu tak bisa menyadap pengguna sesi lain.

GDM hanya mendukung skema otentikasi Xserver MIT-MAGIC-COOKIE-1. Secara normal hanya sedikit keuntungan yang didapat dari skema lain, dan tak ada upaya untuk mengimplementasi mereka sejauh ini. Sangat berhati-hatilah untuk memakai XDMCP karena cookie otentikasi Xserver disalurkan lewat jaringan sebagai teks polos. Bila penyadapan mungkin, maka penyerang cukup sekedar menyadap sandi otentikasi saat Anda log masuk, tak peduli skema otentikasi yang dipakai. Bila penyadapan dimungkinkan dan tak diharapkan, maka Anda mesti memakai ssh untuk membungkus koneksi X daripada memakai XDMCP. Anda dapat menganggap XDMCP sebagai telnet mode grafis, yang memiliki masalah keamanan sama. Dalam kebanyakan kasus, ssh -Y mesti lebih disukai daripada fitur XDMCP GDM.

### Keamanan XDMCP

Walaupun tampilan Anda dilindungi oleh cookies, XEvents dan juga ketikan saat memasukkan sandi masih akan dilewatkan jaringan dalam bentuk teks polos. Sangat mudah untuk menangkap itu.

XDMCP terutama berguna untuk menjalankan thin client seperti di lab terminal. Thin client itu hanya akan perlu jaringan untuk mengakses server, sehingga kebijakan keamanan terbaik adalah untuk menempatkan thin client tersebut pada jaringan terpisah yang tak dapat diakses oleh dunia luar, dan hanya dapat menyambung ke server. Satu-satunya titik yang perlu akses keluar adalah server. Jenis penyiapan ini tak boleh memakai unmanaged hub atau jaringa lain yang dapat disadap.

### Kendali Akses XDMCP

Kendali akses XDMCP dilakukan memakai TCP wrappers. Memang mungkin untuk mengompail GDM tanpa dukungan TCP wrappers, sehingga fitur ini mungkin tak didukung pada beberapa Sistem Operasi.

Anda mesti memakai nama deamon `gdm` dalam berkas `<etc>/hosts.allow` dan `<etc>/hosts.deny`. Sebagai contoh untuk menolak komputer dari `.evil.domain` yang berusaha log masuk, maka tambahkan

    gdm: .evil.domain

ke `<etc>/hosts.deny`. Anda mungkin juga perlu menambah

    gdm: .your.domain

ke `<etc>/hosts.allow` bila biasanya Anda menolak semua layanan dari semua host. Lihat halaman man hosts.allow(5) untuk rinciannya.

### Keamanan Firewall

Walaupun GDM mencoba untuk mengakali penyerang potensial yang mencoba mengambil keuntungan dari XDMCP, masih disarankan bagi Anda untuk memblokir port XDMCP (biasanya UDP port 177) pada firewall Anda kecuali bila memang diperlukan. GDM menjaga dari serangan denial of service, tapi protokol X masih tak aman secara inheren dan mestinya hanya dipakai dalam suatu lingkungan yang terkendali. Setiap koneksi remote juga menghabiskan banyak sumber daya, sehingga jauh lebih mudah melakukan serangan denial of service melalui XDMCP daripada menyerang suatu server web.

Juga bijaksana untuk memblokir semua port Xserver. Ini adalah port TCP 6000+ (satu bagi setiap nomor tampilan) pada firewall Anda. Perhatikan bahwa GDM akan memakai tampilan nomor 20 dan yang lebih tinggi bagi server on-demand yang fleksibel.

X bukan protokol yang aman ketika dipakai di Internet, dan XDMCP bahkan lebih tidak aman lagi.

### PolicyKit

GDM dapat ditata untuk memakai PolicyKit yang mengijinkan administrator sistem mengendalikan apakah layar log masuk mesti menyediakan tombol matikan dan mulai ulang pada layar penyapa.

Tombol-tombol ini masing-masing dikendalikan oleh aksi `org.freedesktop.consolekit.system.stop-multiple-users` dan `org.freedesktop.consolekit.system.restart-multiple-users`. Kebijakan bagi aksi-aksi ini dapat disiapkan memakai perkakas polkit-gnome-authorization, atau program baris perintah polkit-auth.

### RBAC (Role Based Access Control)

GDM dapat ditata untuk memakai RBAC sebagai pengganti PolicyKit. Dalam hal ini konfigurasi RBAC dipakai untuk mengendalikan apakah layar log masuk mesti menyediakan tombol matikan dan mulai ulang pada layar penyapa.

Sebagai contoh, pada Oracle Solaris, otorisasi "solaris.system.shutdown" dipakai untuk mengendalikan ini. Cukup ubah berkas `/etc/user_attr` sehingga pengguna "gdm" memiliki otorisasi ini.

## Dukungan untuk ConsoleKit

GDM menyertakan dukungan bagi pengumuman informasi log masuk pengguna dengan framework akunting sesi log masuk dan pengguna yang dikenal sebagai ConsoleKit. ConsoleKit dapat mencatat semua pengguna yang kini log masuk, sehingga dapat dipakai sebagai pengganti berkas utmp atau utmpx yang tersedia pada kebanyakan Sistem Operasi mirip Unix.

Ketika GDM akan membuat proses log masuk baru bagi seorang pengguna, ia akan memanggil metoda dengan hak khusus dari ConsoleKit untuk membuka sesi baru bagi pengguna ini. Pada saat ini GDM juga menyediakan informasi untuk ConsoleKit tentang sesi pengguna ini seperti: ID pengguna, Nama tampilan X11 yang akan dikaitkan dengan sesi ini, nama host tempat sesi berasal (berguna pada kasus sesi XDMCP), apakah sesi ini dicantol atau tidak, dsb. Sebagai entitas yang mengawali proses pengguna, GDM berada pada posisi yang unik untuk mengetahui tentang sesi pengguna dan untuk dipercaya menyediakan kepingan informasi ini. Penggunaan metode dengan hak khusus ini dibatasi oleh pemakaian kebijakan keamanan bus pesan sistem D-BUS.

Bila penguna dengan sesi yang telah ada telah diotentikasi pada GDM dan meminta melanjutkan sesi tersebut, GDM memanggil suatu metoda dengan hak khusus dari ConsoleKit untuk membuka kunci sesi tersebut. Rincian tepatnya dari apa yang terjadi ketika sesi menerima sinyal buka kunci ini tak terdefinisi dan spesifik sesi. Namun kebanyakan sesi akan membuka kunci screensaver sebagai respon.

Ketika pengguna memilih untuk log keluar, atau bila GDM atau sesi keluar tak disangka-sangka, sesi pengguna akan dikeluarkan dari daftar ConsoleKit.

## Konfigurasi

GDM memiliki sejumlah antar muka konfigurasi. Ini termasuk titik integrasi skrip, konfigurasi daemon, konfigurasi penyapa, pengaturan sesi umum, integrasi dengan konfigurasi gnome-settings-daemon, dan konfigurasi sesi. Integrasi tipe ini diuraikan secara rinci di bawah.

### Titik Integrasi Skrip

Titik integrasi skrip GDM dapat ditemukan dalam direktori `<etc>/gdm/`:

    Xsession
    Init/
    PostLogin/
    PreSession/
    PostSession/

Skrip `Init`, `PostLogin`, `PreSession`, dan `PostSession` semua bekerja seperti dijelaskan di bawah.

Untuk setiap jenis skirp, secara baku yang akan dieksekusi dinamai "Default" dan disimpan dalam suatu direktori yang berkaitan dengan tipe skrip. Maka skrip `Init` baku adalah `<etc>/gdm/Init/Default`. Suatu skrip per tampilan dapat disediakan, dan bila ada akan dijalankan sebagai pengganti skrip bawaan. Skrip demikian disimpan di dalam direktori yang sama dengan skrip bawaan dan memiliki nama yang sama dengan nilai DISPLAY Xserver bagi tampilan tersebut. Sebagai contoh, bila skrip `<Init>/:0` ada, itu akan dijalankan bagi DISPLAY ":0".

Semua skrip ini dijalankan dengan privilese root dan mengembalikan 0 bila dijalankan dengan sukses, dan kode kembalian bukan nol bila ada kegagalan yang mesti menyebabkan sesi login digugurkan. Perhatikan juga bahwa GDM akan memblok sampai skrip selesai, sehingga bila salah satu skrip ini hang, ini akan menyebabkan proses log masuk juga hang.

Ketika Xserver sebagai GUI log masuk telah sukses dimulai, tapi sebelum GUI log masuk benar-benar ditampilkan, GDM akan menjalankan skrip `Init`. Skrip ini berguna untuk memulai program yang mesti dijalankan ketika layar log masuk tampil, atau untuk melakukan inisialisasi khusus apapun bila diperlukan.

Setelah pengguna sukses terotentikasi GDM akan menjalankan skrip `PostLogin`. Ini dilakukan sebelum penyiapan sesi manapun dilakukan, termasuk sebelum pemanggilan pam_open_session. Skrip ini berguna untuk melakukan inisialisasi sesi apapun yang perlu terjadi sebelum sesi mulai. Sebagai contoh, Anda mungkin perlu menyiapkan direktori $HOME pengguna bila diperlukan.

Setelah sesi pengguna diinisialisasi, GDM akan menjalankan skrip `PreSession`. Skrip ini berguna untuk melakukan sebarang inisialisasi sesi yang perlu terjadi setelah sesi diinisialisasi. Ini dapat dipakai untuk manajemen sesi atau akunting, misalnya.

Ketika seorang pengguna mengakhiri sesinya, GDM akan menjalankan skrip `PostSession`. Perhatikan bahwa Xserver bakal telah berhenti saat skrip ini dijalankan, sehingga itu tak boleh diakses.

Perhatikan bahwa skrip `PostSession` akan dijalankan bahkan ketika tampilan gagal merespon karena galat I/O atau yang serupa. Jadi tak ada jaminan bahwa aplikasi X akan bekerja selama eksekusi skrip.

Semua skrip di atas akan menata variabel lingkungan `$RUNNING_UNDER_GDM` ke `yes`. Bila skrip juga dipakai bersama dengan manajer tampilan lain, ini memungkinkan Anda mengidentifikasi ketika GDM sedang memanggil skrip ini, sehingga Anda dapat menjalankan kode khusus ketika GDM sedang dipakai.

### Konfigurasi Autostart

Direktori `<share>/gdm/autostart/LoginWindow` memuat berkas dalam format yang dinyatakan oleh "FreeDesktop.org Desktop Application Autostart Specification". Fitur standar dalam spesifikasi itu boleh dipakai untuk menyatakan program yang mesti dijalankan ulang secara otomatis atau hanya diluncurkan bila suatu nilai konfigurasi GConf ditata, dsb.

Berkas `.desktop` apapun dalam direktori ini akan menyebabkan program yang terkait dijalankan secara otomatis dengan penyapa GUI log masuk. Secara baku, GDM dilengkapi dengan berkas yang akan otomatis menjalankan penyapa GUI log masuk gdm-simple-greeter, aplikasi gnome-power-manager, gnome-settings-daemon, dan manajer jendela metacity. Program-program ini diperlukan agar program penyapa dapat bekerja. Sebagai tambahan, berkas desktop disediakan untuk menjalankan berbagai program AT bila nilai konfigurasi yang dinyatakan dalam bagian Konfigurasi Aksesabilitas di bawah ditata.

### Skrip Xsession

Ada juga skrip `Xsession` yang terletak di `<etc>/gdm/Xsession` yang dipanggil antara skrip `PreSession` dan `PostSession`. Skrip ini tak mendukung per-tampilan seperti skrip lain. Skrip ini dipakai untuk benar-benar memulai sesi pengguna. Skrip ini dijalankan sebagai pengguna, dan akan menjalankan sesi apapun yang dinyatakan oleh berkas sesi Desktop yang dipilih pengguna untuk dimulai.

### Konfigurasi Daemon

Daemon GDM dikonfigurasi memakai berkas `<etc>/gdm/custom.conf`. Nilai baku disimpan di GConf dalam berkas `gdm.schemas`. Disarankan bahwa pengguna akhir mengubah berkas `<etc>/gdm/custom.conf` karena berkas skema mungkin tertimpa ketika pengguna memutakhirkan sistem mereka untuk mendapatkan versi GDM yang lebih baru.

Perhatikan bahwa GDM versi lebih lama mendukung opsi konfigurasi tambahan yang tak didukung lagi pada versi GDM terakhir.

Berkas `<etc>/gdm/custom.conf` berformat `keyfile`. Kata kunci dalam kurung siku mendefinisikan bagian grup, string sebelum tanda sama dengan adalah kunci dan data setelah tanda sama dengan mewakili nilai mereka. Baris kosong atau baris yang diawali dengan tanda pagar (#) diabaikan.

Berkas `<etc>/gdm/custom.conf` mendukung bagian grup "[daemon]", "[security]", dan "[xdmcp]". Dalam setiap grup, ada pasangan kunci/nilai tertentu yang dapat dinyatakan untuk mengubah bagaimana GDM bertingkahlaku. Sebagai contoh, untuk mengaktifkan log masuk dengan tenggang waktu dan menyatakan bahwa pengguna yang log masuknya diberi tenggang waktu adalah pengguna bernama "you", Anda perlu mengubah berkas sehingga memuat baris-baris berikut:

    [daemon]
    TimedLoginEnable=true
    TimedLogin=you

Daftar lengkap dari kunci konfigurasi yang didukung adalah sebagai berikut:

#### [chooser]

Multicast

-     Multicast=false

  Bila true dan IPv6 diaktifkan, chooser akan mengirim suatu query multicast ke jaringan lokal dan mengumpulkan jawaban dari host yang telah bergabung ke grup multicast.

MulticastAddr

-     MulticastAddr=ff02::1

  Ini adalaha alamat multicast Link-local.

#### [daemon]

TimedLoginEnable

-     TimedLoginEnable=false

  Bila pengguna yang diberikan dalam `TimedLogin` mesti log masuk setelah sekian detik (diatur dengan `TimedLoginDelay` tanpa aktivitas pada layar log masuk. Ini berguna bagi terminal akses publik atau bahkan penggunaan di rumah. Bila pengguna memakai papan tik atau meramban menu, tenggang waktu akan direset ke `TimedLoginDelay` atau 30 detik, manapun yang lebih tinggi. Bila pengguna tak memasukkan nama tapi hanya menekan tombol ENTER ketika program log masuk meminta nama pengguna, maka GDM akan menganggap bahwa pengguna ingin log masuk seketika sebagai pengguna yang dikenai tenggang waktu. Perhatikan bahwa sandi tak akan diminta bagi pengguna ini sehingga Anda mesti berhati-hati, walaupun bilan menggunakan PAM ini dapat diatur untuk meminta masukan sandi sebelum mengijinkan log masuk. Lihatlah bagian "Keamanan->PAM" dari manual untuk informasi lebih jauh, atau untuk bantuan bila fitur ini sepertinya tak bekerja.

TimedLogin

-     TimedLogin=

  Ini adalah pengguna yang mesti dilogmasukkan setelah sekian detik tanpa aktivitas seperti yang dinyatakan.

  Bila nilai diakhiri dengan batang vertikal (simbol pipa), maka GDM akan menjalankan program yang dinyatakan dan memakai nilai apapun yang dikembalikan pada standard out dari program sebagai pengguna. Program dijalankan dengan variabel lingkungan DISPLAY ditata sehingga mungkin untuk menyatakan pengguna dengan cara per-tampilan. Sebagai contoh bila nilainya adalah "/usr/bin/getloginuser|", maka program "/usr/bin/getloginuser" akan dijalankan untuk mendapat nilai pengguna.

TimedLoginDelay

-     TimedLoginDelay=30

  Tundaan dalam detik sebelum pengguna `TimedLogin` akan dilogmasukkan.

AutomaticLoginEnable

-     AutomaticLoginEnable=false

  Bila berisi true, pengguna yang diberikan dalam `AutomaticLogin` mesti dilogmasukkan seketika. Fitur ini seperti log masuk dengan tenggang waktu 0 detik.

AutomaticLogin

-     AutomaticLogin=

  Ini adalah pengguna yang mesti seketika log masuk bila `AutomaticLoginEnable` berisi true.

  Bila nilai diakhiri dengan batang vertikal (simbol pipa), maka GDM akan menjalankan program yang dinyatakan dan memakai nilai apapun yang dikembalikan pada standard out dari program sebagai pengguna. Program dijalankan dengan variabel lingkungan DISPLAY ditata sehingga mungkin untuk menyatakan pengguna dengan cara per-tampilan. Sebagai contoh bila nilainya adalah "/usr/bin/getloginuser|", maka program "/usr/bin/getloginuser" akan dijalankan untuk mendapat nilai pengguna.

User

-     User=gdm

  Nama pengguna yang menjalankan penyapa dan program GUI lainnya. Lihat kunci konfigurasi `Group` dan bagian "Keamanan->Pengguna Dan Grup GDM" dari dokumentasi ini untuk informasi lebih lanjut.

Group

-     Group=gdm

  Nama grup yang menjalankan penyapa dan program GUI lainnya. Lihat kunci konfigurasi `Group` dan bagian "Keamanan->Pengguna Dan Grup GDM" dari dokumentasi ini untuk informasi lebih lanjut.

#### Opsi Debug

#### [debug]

Enable

-     Enable=false

  Untuk memungkinkan pengawakutuan, atur kunci debug/Enable ke "true" dalam berkas `<etc>/gdm/custom.conf` dan mulai ulang GDM. Maka keluaran pengawakutuan akan kemudian dikirim ke berkas log sistem (`<var>/log/messages` atau `<var>/adm/messages` bergantung kepada Sistem Operasi Anda).

#### Opsi Greeter

#### [greeter]

IncludeAll

-     IncludeAll=true

  Bila berisi true, maka peramban wajah akan menampilkan semua pengguna pada mesin lokal. Bila berisi false, maka peramban wajah hanya akan menampilkan pengguna yang baru-baru ini log masuk.

  Bila kunci ini berisi true, GDM akan memanggil fgetpwent() untuk memperoleh daftar pengguna lokal pada sistem. Sebarang pengguna dengan id pengguna kurang dari 500 (atau 100 bila menjalankan Oracle Solaris) tak akan lolos saringan. Peramban Wajah juga akan menampilkan sebarang pengguna yang sebelumnya log masuk ke sistem (sebagai contoh pengguna NIS/LDAP). Daftar ini didapat dari pemanggilan antar muka ConsoleKit `ck-history`. Ini juga akan menyingkirkan pengguna yang tak memiliki shell yang valid (shell valid adalah sebarang shell yang dikembalikan oleh getusershell() - /sbin/nologin atau /bin/false dianggap sebagai shell yang tak valid walaupun getusershell() mengembalikan mereka).

  Bila berisi false, maka GDM hanya sekedar menampilkan pengguna yang sebelumnya pernah log masuk ke sistem (pengguna lokal atau NIS/LDAP) dengan memanggil antar muka ConsoleKit `ck-history`.

Include

-     Include=

  Diisi dengan daftar pengguna yang selalu disertakan dalam Peramban Wajah. Nilai ini diisi dengan daftar pengguna yang dipisah dengan koma. Nilai bawaan adalah kosong.

Exclude

-     Exclude=bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap

  Diisi dengan daftar pengguna yang selalu tidak disertakan dalam Peramban Wajah. Nilai ini diisi dengan daftar pengguna yang dipisah dengan koma. Perhatikan bahwa pengaturan dalam `custom.conf` menimpa nilai bawaan, sehingga ketika Anda hendak menambahkan pengguna ke daftar, maka Anda perlu menata nilai ke nilai bawaan dengan pengguna tambahan ditambahkan ke daftar.

#### Opsi Keamanan

#### [security]

DisallowTCP

-     DisallowTCP=true

  Bila berisi true, maka selalu menambahkan `-nolisten tcp` ke baris perintah ketika memulai Xserver yang dicantol, sehingga melarang koneksi TCP. Ini konfigurasi yang lebih aman bila Anda tak memakai koneksi jauh.

#### Dukungan XDMCP

#### [xdmcp]

DisplaysPerHost

-     DisplaysPerHost=1

  Untuk mencegah penyerang memenuhi antrian yang tertunda, GDM hanya akanmengijinkan satu koneksi bagi setiap komputer jauh. Bila Anda ingin menyediakanlayanan tampilan ke komputer yang memiliki lebih dari satu layar, Anda mesti menaikkan nilai ini.

  Perhatikan bahwa cacah DISPLAY tercantol yang diijinkan tak dibatasi. Hanya koneksi jauh melalui XDMCP yang dibatasi oleh opsi konfigurasi ini.

Enable

-     Enable=false

  Menata ini ke true memungkinkan dukungan XDMCP yang mengijinkan tampilan jauh/terminal X dikelola oleh GDM.

  `gdm` mendengarkan permintaan pada UDP port 177. Lihat opsi Port untuk informasi lebih jauh.

  Bila GDM dikompail untuk mendukungnya, akses dari tampilan jauh dapat dikendalikan memakai pustaka TCP Wrapper. Nama layanan adalah `gdm`

  Ada mesti menambah

      gdm:.my.domain

  ke `<etc>/hosts.allow` Anda, bergantung kepada konfigurasi TCP Wrapper Anda. Lihat halaman man hosts.allow untuk rinciannya.

  Mohon diperhatikan bahwa XDMCP bukan protokol yang aman dan ide yang bagus untuk memblokir UDP port 177 pada firewall Anda kecuali Anda memang memerlukannya.

HonorIndirect

-     HonorIndirect=true

  Fungsikan pemilihan XDMCP INDIRECT (yaitu eksekusi jauh dari `gdmchooser`) bagi X-terminal yang tak menyediakan peramban tampilannya sendiri.

MaxPending

-     MaxPending=4

  Untuk menghindari serangan penyangkalan layanan, GDM memiliki antrian sambungan yang tertunda berukuran tetap. Hanya MaxPending tampilan yang dapat dimulai pada saat yang sama.

  Mohon dicatat bahwa parameter ini tak membatasi cacah tampilan jauh yang dapat dikelola. Ini hanya membatasi cacah tampilan yang mengawali koneksi secara simultan.

MaxSessions

-     MaxSessions=16

  Menentukan cacah maksimum dari koneksi tampilan jauh yang akan dikelola secara simultan. Yaitu cacah total tampilan jauh yang dapat memakai host Anda.

MaxWait

-     MaxWait=30

  Ketika GDM siap untuk mengelola suatu tampilan, suatu paket ACCEPT dikirim kepadanya, yang memuat id sesi unik yang akan dipakai dalam percakapan XDMCP di masa mendatang.

  GDM lalu akan menempatkan id sesi ke dalam antrian tertunda yang menunggu tampilan merespon dengan permintaan MANAGE.

  Bila tak ada respon yang diterima dalam MaxWait detik, GDM akan menyatakan bahwa tampilan mati dan menghapusnya dari antrian tertunda, membebaskan slot bagi tampilan lain.

MaxWaitIndirect

-     MaxWaitIndirect=30

  Parameter MaxWaitIndirect menentukan berapa detik maksimum antara waktu ketika pengguna memilih suatu host dan query tak langsung kelanjutannya dimana pengguna tersambung ke host. Ketika tenggang waktu dilampaui, informasi tentang host yang dipilih dilupakan dan slot tak langsung dibebaskan bagi tampilan lain. Informasi mungkin dilupakan lebih awal bila ada lebih banyak host mencoba mengirim query tak langsung daripada `MaxPendingIndirect`.

PingIntervalSeconds

-     PingIntervalSeconds=60

  Bila Xserver tak merespon dalam sekian detik yang dinyatakan, maka koneksi dihentikan dan sesi diakhiri. Ketika ini terjadi daemon mati dengan sinyal ALARM. Perhatikan bahwa GDM 2.20 dan sebelumnya mengalikan 2 pengaturan ini, sehingga mungkin perlu menaikkan tenggang waktu bila meningkatkan dari GDM 2.20 dan sebelumnya ke versi yang lebih baru.

  Perhatikan bahwa GDM di masa lalu biasa memiliki kunci konfigurasi `PingInterval` dalam satuan menit. Untuk kebanyakan tujuan Anda akan menginginkan pengaturan ini agar kurang dari satu meni. Namun karena dalam kebanyakan kasus dimana XDMCP akan dipakai (seperti pada lab terminal), lag lebih dari sekitar 15 detik sesungguhnya berarti bahwa terminal dimatikan atau dimulai ulang dan Anda ingin mengakhiri sesi tersebut.

Port

-     Port=177

  Nomor port UDP yang mesti didengar oleh `gdm` bagi permintaan XDMCP. Jangan mengubah ini kecuali Anda tahu apa yang Anda lakukan.

Willing

-     Willing=<etc>/gdm/Xwilling

  Ketika mesin mengirim balik paket WILLING setelah QUERY, dia mengirim string yang memberikan status terkini dari server ini. Pesan baku adalah ID sistem, tapi mungkin untuk membuat skrip yang menampilkan pesan ubahan. Bila skrip ini tak ada atau kunci ini kosong maka pesan baku yang dikirim. Bila skrip ini sukses dan menghasilkan suatu keluaran, baris pertama keluaran yang akan dikirim (dan hanya baris pertama). Itu dijalankan paling sering sekali dalam 3 detik untuk mencegah kemungkinan denial of service dengan membanjiri mesin dengan paket QUERY.

### Konfigurasi Penyapa Sederhana

Penyapa bawaan GDM dinamai Simple Greeter dan ditata melalui GConf. Nilai bawaan disimpan dalam GConf pada berkas `gdm-simple-greeter.schemas`. Nilai bawaan ini dapat ditimpa bila pengguna "gdm" memiliki direktori $HOME yang dapat ditulisi untuk menyimpan tatanan GConf. Nilai-nilai ini dapat disunting memakai program `gconftool-2` atau `gconf-editor`. Opsi konfigurasi berikut didukung:

### Kunci Konfigurasi Penyapa

/apps/gdm/simple-greeter/banner_message_enable

-     false (boolean)

  Mengendalikan apakah teks pesan banner ditampilkan.

/apps/gdm/simple-greeter/banner_message_text

-     NULL (string)

  Menyatakan pesan banner teks untuk ditampilkan pada jendela penyapa.

/apps/gdm/simple-greeter/disable_restart_buttons

-     false (boolean)

  Mengendalikan apakah menampilkan tombol hidupkan ulang komputer pada jendela log masuk.

/apps/gdm/simple-greeter/disable_user_list

-     false (boolean)

  Bila true, maka peramban wajah dengan pengguna yang dikenal tak ditampilkan di jendela log masuk.

/apps/gdm/simple-greeter/logo_icon_name

-     komputer (string)

  Tata ke nama ikon ditemakan untuk dipakai bagi logo penyapa.

/apps/gdm/simple-greeter/recent-languages

-     [] (daftar string)

  Tata ke daftar bahasa yang akan ditampilkan secara baku dalam jendela log masuk. Nilai baku adalah "[]". Dengan tatanan bawaan hanya bahasa bawaan sistem yang ditampilkan dan opsi "Lainnya..." yang memunculkan suatu kotak dialog yang menampilkan daftar lengkap bahasa yang tersedia tempat pengguna dapat memilih.

  Pengguna tak diharapkan mengubah pengaturan ini secara manual. Sebagai gantinya, GDM melacak sebarang bahasa yang dipilih dalam kunci konfigurasi ini, dan akan menampilkan mereka dalam kotak kombo bahasa bersama dengan pilihan "Lainnya...". Dengan cara ini, bahasa yang umum dipilih akan lebih mudah dipilih.

/apps/gdm/simple-greeter/recent-layouts

-     [] (daftar string)

  Ditata ke daftar tata letak papan tik yang secara baku akan ditampilkan pada panel log masuk. Nilai bawaan adalah "[]". Dengan pengaturan baku hanya tata letak papan tik bawaan sistem yang ditampilkan dan opsi "Lainnya..." yang memunculkan kotak dialog yang menunjukkan daftar lengkap tata letak papan tik yang tersedia yang dapat dipilih oleh pengguna.

  Pengguna tak diharapkan mengubah pengaturan ini secara manual. Sebagai gantinya, GDM melacak sebarang tata letak papan tik yang dipilih dalam kunci konfigurasi ini, dan akan menampilkan mereka dalam kotak kombo tata letak papan tik bersama dengan pilihan "Lainnya...". Dengan cara ini, tata letak papan tik yang umum dipilih akan lebih mudah dipilih.

/apps/gdm/simple-greeter/wm_use_compiz

-     false (boolean)

  Mengendalikan apakah compiz dipakai sebagai manajer jendela menggantikan metacity.

### Konfigurasi Aksesibilitas

Seksi ini menjelaskan opsi konfigurasi aksesibilitas yang tersedia dalam GDM.

#### Dialog Aksesibilitas GDM Dan Kunci GConf

Panel penyapa GDM pada layar log masuk menampilkan ikon aksesibilitas. Bila ikon tersebut diklik akan membuka Dialog Aksesibilitas GDM. Dalam Dialog Aksesibilitas GDM, ada daftar kotak contreng, sehingga pengguna dapat mengaktifkan atau menonaktifkan perkakas bantu yang terkait.

Kotak contreng yang terkait dengan perkakas bantu papan tik pada layar, pembesar layar, dan pembaca layar beraksi pada tiga kunci GConf yang diuraikan pada seksi selanjutnya dari dokumen ini. Dengan mengaktifkan atau mematikan kotak-kotak contreng ini, kunci GConf yang terkait akan ditata ke "true" atau "false". Ketika kunci GConf diisi dengan true, perkakas bantu yang terkait ke kunci GConf ini diluncurkan. Ketika kunci GConf diisi dengan "false", perkakas bantu terkait kunci GConf ini diakhiri bila berjalan. Kunci-kunci GConf ini tak direset ke keadaan bawaan secara otomatis setelah pengguna log masuk. Konsekuensinya, perkakas bantu yang berjalan selama sesi log masuk terakhir akan otomatis diluncurkan pada sesi log masuk selanjutnya.

Kotak contreng lain dalam Dialog Aksesibilitas GDM tak memiliki kunci GConf yang berkaitan karena tak ada program tambahan yang diluncurkan untuk menyediakan fitur aksesibilitas yang mereka tawarkan. Ops lain ini berkaitan dengan fitur aksesibilitas yang disediakan oleh Xserver, yang selalu berjalan selama sesi GDM.

#### Kunci GConf Aksesibilitas

GDM menawarkan kunci GConf berikut untuk mengendalikan fitur aksesibilitasnya:

#### Kunci Konfigurasi GDM

/desktop/gnome/interface/accessibility

-     false (boolean)

  Mengendalikan apakah infrastruktur Aksesibilitas akan dimulai dengan GUI GDM. Ini diperlukan oleh banyak program teknologi aksesibilitas agar bekerja.

/desktop/gnome/applications/at/screen_magnifier_enabled

-     false (boolean)

  Bila ditata, alat asistif yang dikaitkan ke kunci GConf ini akan dimulai dengan program GUI GDM. Secara baku ini adalah aplikasi pembesaran layar.

/desktop/gnome/applications/at/screen_keyboard_enabled

-     false (boolean)

  Bila ditata, alat asistif yang dikaitkan ke kunci GConf ini akan dimulai dengan program GUI GDM. Secara baku ini adalah aplikasi papan tik di layar.

/desktop/gnome/applications/at/screen_reader_enabled

-     false (boolean)

  Bila ditata, alat asistif yang dikaitkan ke kunci GConf ini akan dimulai dengan program GUI GDM. Secara baku ini adalah aplikasi pembaca layar.

#### Mengaitkan Kunci GConf ke Alat Aksesibilitas

Untuk kunci GConf screen_magnifier_enabled, screen_keyboard_enabled, dan screen_reader_enabled, perkakas asistif yang diluncurkan bergantung kepada berkas desktop yang terletak di direktori autostart GDM sebagaimana diuraikan dalam bagian "Konfigurasi Mulai Otomatis" dari manual ini. Sebarang berkas desktop dalam direktori autostart GDM dapat ditautkan ke kunci GConf ini dengan menyatakan kunci GConf itu dalam nilai AutostartCondition pada berkas desktop. Maka baris AutostartCondition dalam berkas desktop secara persis bisa salah satu dari berikut:

    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_magnifier_enabled
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_reader_enabled

Ketika suatu kunci aksesibilitas berisi true, maka sebarang program yang ditautkan ke kunci tersebut dalam suatu berkas desktop autostart GDM akan diluncurkan (kecuali kunci Tersembunyi diisi true dalam berkas desktop tersebut). Suatu kunci GConf tunggal bahkan dapat memulai beberapa perkakas asistif bila ada beberapa berkas desktop dengan AutostartCondition ini dalam direktori autostart GDM.

#### Contoh Pengubahan Konfigurasi Alat Aksesibilitas

Sebagai contoh, bila GNOME didistribusikan dengan GOK sebagai papan tik pada layar bawaan, maka ini dapat digantikan dengan program lain bila dikehendaki. Untuk mengganti GOK dengan aplikasi papan tik pada layar "onboard" dan sebagai tambah mengaktifkan perkakas asistif "mousetweaks" untuk dukungan dwelling, maka konfigurasi berikut diperlukan.

Buatlah suatu berkas desktop bagi onboard dan yang kedua bagi mousetweaks; sebagai contoh, onboard.desktop dan mousetweaks.desktop. Berkas-berkas ini mesti ditempatkan dalam direktori autostart GDM dan dalam format yang diterangkan dalam bagian "Konfigurasi Mulai Otomatis" dari dokumen ini.

Berikut ini adalah contoh berkas `onboard.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Onboard Onscreen Keyboard
    Comment=Use an on-screen keyboard
    TryExec=onboard
    Exec=onboard --size 500x180 -x 20 -y 10
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Berikut ini adalah contoh berkas `mousetweaks.desktop`:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Software Mouse-Clicks
    Comment=Perform clicks by dwelling with the pointer
    TryExec=mousetweaks
    Exec=mousetweaks --enable-dwell -m window -c -x 20 -y 240
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Accessibility;
    AutostartCondition=GNOME /desktop/gnome/applications/at/screen_keyboard_enabled

Perhatikan baris dengan AutostartCondition yang menautkan kedua berkas desktop ke kunci GConf bagi papan tik pada layar.

Untuk mencegah GOK dimulai, berkas desktop bagi papan tik pada layar GOK mesti dihapus atau dimatikan. Bila tidak maka onboard dan GOK akan dimulai secara simultan. Ini dapat dilakukan dengan menghapus berkas gok.desktop dari direktori mulai-sendiri GDM atau dengan menambahkan pengaturan kunci "Hidden=true" ke berkas gok.desktop.

Setelah membuat perubahan ini, GOK tak akan lagi dimulai ketika pengguna mengaktifkan papan tik pada layar dalam sesi GDM, tapi sebagai gantinya yang akan diluncurkan adalah onboard dan mousetweaks.

### Tatanan Sesi Umum

Penyapa GDM memakai beberapa dari framework yang sama dengan yang akan dipakai oleh sesi desktop Anda. Maka itu dipengaruhi oleh sejumlah pengaturan GConf yang sama. Bagi setiap pengaturan ini Penyapa akan memakai nilai bawaan kecuali ditimpa secara spesifik oleh a) kebijakan wajib terpasang GDM b) kebijakan wajib sistem. GDM memasang kebijakan wajibnya sendiri untuk mengunci beberapa pengaturan demi keamanan.

### Daemon Penataan GNOME

GDM mengaktifkan plugin gnome-settings-daemon berikut: a11y-keyboard, background, sound, xsettings.

Ini bertanggungjawab bagi hal-hal seperti gambar latar, pengaturan fonta dan tema, kejadian-kejadian bersuara, dsb.

Plugin juga dapat dinonaktifkan memakai GConf. Sebagai contoh, bila Anda ingin mematikan plugin suara maka hapuskan tatanan kunci berikut: `/apps/gdm/simple-greeter/settings-manager-plugins/sound/active`.

### Konfigurasi Sesi GDM

Sesi GDM dinyatakan memakai Spesifikasi Entri Desktop FreeDesktop.org, yang dapat dirujuk pada URL berikut: http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec.

Secara baku, GDM akan memasang berkas desktop dalam direktori `<share>/xsessions`. GDM akan mencari dalam direktori berikut, sesuai urutan, untuk mencari berkas desktop: `<etc>/X11/sessions/`, `<dmconfdir>/Sessions`, `<share>/xsessions`, dan `<share>/gdm/BuiltInSessions`. Secara baku `<dmconfdir>` ditata ke `<etc>/dm/` kecuali GDM ditata untuk memakai direktori lain melalui opsi "--with-dmconfdir".

Suatu sesi dapat dimatikan dengan menyunting berkas desktop dan menambahkan baris berikut: `Hidden=true`.

Berkas desktop GDM mendukung ekstensi spesifik GDM, suatu kunci bernama "X-GDM-BypassXsession". Bila kunci itu tak dinyatakan dalam suatu berkas desktop, nilai bawaannya adalah "false". Bila kunci ini dinyatakan dengan nilai "true" dalam suatu berkas desktop, maka GDM akan meluncurkan program yang dinyatakan oleh kunci "Exec" berkas desktop secara langsung ketika mengawali sesi pengguna. Itu tidak akan menjalankan program melalui skrip `<etc>/gdm/Xsession`, yang merupakan perilaku normal. Karena mem-bypass skrip `<etc>/gdm/Xsession` menghindari menyiapkan sesi pengguna dengan pengaturan pengguna dan sistem normal, sesi yang dimulai dengan cara ini dapat berguna untuk mengawakutu masalah dalam skrip pengguna atau sistem yang mungkin mencegah seorang pengguna untuk mengawali suatu sesi.

### Konfigurasi Bahasa dan Sesi Pengguna GDM

Pilihan bahasa dan sesi baku pengguna disimpan di dalam berkas `~/.dmrc`. Ketika pengguna log masuk untuk pertama kali, berkas ini dibuat dan diisi dengan pilihan awal pengguna. Pengguna dapat mengubah nilai bawaan ini hanya dengan mengubah ke nilai yang berbeda ketika sedang log masuk. GDM akan mengingat perubahan ini untuk log masuk seterusnya.

Berkas `~/.dmrc` memakai standar format `INI`. Dia memiliki satu bagian bernama `[Desktop]` yang memiliki dua kunci: `Session` dan `Language`.

Kunci `Session` menyatakan nama basis dari berkas `.desktop` sesi yang biasanya ingin dipakai oleh pengguna tanpa ekstensi `.desktop`. Kunci `Language` menyatakan bahasa bawaan yang ingin dipakai oleh pengguna. Bila salah satu kunci tersebut hilang, akan dipakai bawaan sistem. Berkas biasanya nampak sebagai berikut:

    [Desktop]
    Session=gnome
    Language=id_ID.UTF-8

## Perintah GDM

### Perintah Pengguna Root GDM

Paket GDM menyediakan perintah berikut di `sbindir` yang dimaksudkan untuk dijalankan oleh pengguna root:

#### Opsi Perintah Baris `gdm`

`gdm` adalah daemon utama yang menyiapkan lingkungan log masuk grafis dan memulai para pembantu yang diperlukan.

#### Opsi Perintah Baris `gdm`

-?, --help

- Memberi kilasan singkat atas opsi perintah baris.

--fatal-warnings

- Buat semua peringatan menyebabkan GDM keluar.

--timed-exit

- Keluar setelah 30 detik. Berguna untuk pengawakutuan.

--version

- Cetak versi daemon GDM.

#### Opsi Perintah Baris `gdm-restart`

`gdm-restart` menghentikan dan memulai ulang GDM dengan mengirim sinyal HUP ke daemon GDM. Perintah ini akan seketika menghentikan semua sesi dan melog keluar pengguna yang sedang log masuk dengan GDM.

#### Opsi Perintah Baris `gdm-safe-restart`

`gdm-safe-restart` menghentikan dan memulai ulang GDM dengan mengirim sinyal USR1 ke daemon GDM. GDM akan direstart segera setelah semua pengguna log keluar.

#### Opsi Perintah Baris `gdm-stop`

`gdm-stop` menghentikan GDM dengan cara mengirim sinyal TERM ke daemon GDM.

## Penanganan Masalah

Bagian ini membahas petunjuk-petunjuk yang berguna agar GDM dapat berjalan. Secara umum, bila Anda menemui masalah saat memakai GDM, Anda dapat mengirim kutu atau surel ke milis gdm-list. Informasi tentang bagaimana melakukan ini ada pada bagian pengantar dokumen ini.

Bila GDM gagal bekerja dengan benar, sangat baik untuk menyertakan informasi awakutu. Untuk mengaktifkan pengawakutuan, tata kunci debug/Enable ke "true" di berkas `<etc>/gdm/custom.conf` dan mulai ulang GDM. Lalu gunakan GDM sampai titik kegagalan, dan keluaran awakutu akan dikirim ke berkas log sistem (`<var>/log/messages` atau `<var>/adm/messages` bergantung kepada Sistem Operasi Anda). Bila Anda berbagi keluaran ini dengan komunitas GDM melalui laporan kutu atau surel, mohon hanya sertakan informasi awakutu yang terkait GDM dan bukan seluruh berkas karena itu bisa jadi besar. Bila Anda tidak melihat keluaran syslog GDM apapun, mungkin Anda perlu menata ulang syslog (lihat halaman man syslog).

### GDM Tidak Akan Dimulai

Banyak masalah yang dapat menyebabkan GDM gagal berjalan, tapi bagian ini akan membahas beberapa masalah umum dan bagaimana melacak suatu masalah memulai GDM. Beberapa masalah akan menyebabkan GDM merespon dengan pesan galat atau dialog ketika ia mencoba memulai, tapi bisa menjadi sulit melacak masalah ketika GDM gagal diam-diam.

Pertama pastikan bahwa Xserver ditata dengan benar. Berkas konfigurasi GDM memuat suatu perintah di bagian [server-Standard] yang dipakai untuk memulai Xserver. Periksa bahwa perintah ini bekerja baik pada sistem Anda. Menjalankan perintah ini dari konsol mestinya memulai Xserver. Bila gagal, maka masalahnya boleh jadi pada konfigurasi Xserver Anda. Lihat log galat Xserver Anda untuk ide apa kemungkinan masalahnya. Masalah mungkin juga karena bahwa Xserver Anda memerlukan opsi perintah baris yang berbeda. Bila begitu, maka ubahlah perintah Xserver di berkas konfigurasi GDM sehingga tepat bagi sistem Anda.

Pastikan juga bahwa direktori `/tmp` memiliki kepemilikan dan ijin yang memadai, dan sistem berkas mesin tak penuh. Masalah-masalah ini akan menyebabkan GDM gagal dijalankan.

## Lisensi

Program ini adalah perangkat lunak bebas; Anda dapat menyebarluaskannya dan/atau mengubahnya di bawah syarat GNU General Public License sebagaimana dipublikasikan oleh Free Software Foundation; baik versi 2 dari Lisensi, atau (terserah pilihan Anda) versi setelahnya.

Program ini didistribusikan dengan harapan akan berguna, tetapi TANPA ADANYA JAMINAN; termasuk tanpa jaminan KETERDAGANGAN atau KECOCOKAN UNTUK TUJUAN TERTENTU. Lihat GNU General Public License untuk rincian lebih lanjut.

Suatu salinan dari GNU General Public License disertakan sebagai lampiran dari Panduan Pengguna GNOME. Anda juga dapat memperoleh salinan dari GNU General Public License dari Free Software Foundation dengan mengunjungi laman Web mereka atau dengan mengirim surat ke

          Free Software Foundation, Inc.
          51 Franklin Street, Fifth Floor
          Boston, MA 02110-1301
          USA