elogind Yapılandırması

Bu belge, systemd kullanmayan sistemlerde (OpenRC tabanlı) elogind login manager'ın kurulumu, yapılandırılması ve gerekli kullanıcı/PAM/agetty ayarlarını anlatır.

1. Gerekli Kullanıcı ve Grup Tanımları

elogind servisi için sistemde gerekli kullanıcı ve gruplar oluşturulur:

groupadd -g 190 systemd-journal
groupadd -g 191 elogind
useradd -r -s /sbin/nologin -g elogind -u 191 elogind

Açıklama:

  • systemd-journal grubu, journal log erişimi için kullanılır.

  • elogind kullanıcı ve grubu, servis için ayrılmıştır.

  • /sbin/nologin ile bu kullanıcıyla doğrudan login engellenir.

  • -r parametresi sistemi kullanıcı oluşturur, yani normal login için kullanılmaz.

2. OpenRC Hizmet Dosyası (/etc/init.d/elogind)

OpenRC ile elogind servisini yönetmek için basit bir init script örneği:

#!/sbin/openrc-run
description="elogind login manager"
command=/usr/lib/elogind/elogind
pidfile=/run/elogind.pid

depend() {
    need dbus
    after dbus
}

Açıklama:

  • command: elogind daemonunu başlatır.

  • pidfile: servis PID bilgisini saklar.

  • depend(): servis başlatılmadan önce D-Bus’ın aktif olmasını garanti eder.

3. Başlatma ve OpenRC’ye Ekleme

rc-update add elogind default
rc-service elogind start

Açıklama:

  • rc-update add: Servisi boot sırasında otomatik başlatmaya ekler.

  • rc-service start: Servisi hemen başlatır.

  • Önemli Kontrol: elogind’in çalışıp çalışmadığını kontrol etmek için:

loginctl list-sessions
  • Eğer aktif oturumlar listeleniyorsa, elogind başarıyla çalışıyor demektir.

4. PAM, Passwd ve Group Ayarları

/etc/nsswitch.conf Örneği:

passwd:      files
group:       files
shadow:      files

Açıklama:

  • Kullanıcı ve grup bilgileri files (yerel /etc/passwd ve /etc/group) üzerinden çözülür.

/etc/pam.d/system-auth Örneği:

auth       required     pam_unix.so
account    required     pam_unix.so
password   required     pam_unix.so
session    required     pam_unix.so
session    include      elogind-user

Not

`session include elogind-user` satırı mutlaka ekli olmalıdır. Bu satır, kullanıcı oturumlarının elogind ile doğru şekilde yönetilmesini sağlar. Eğer yoksa manuel olarak eklenmelidir:

sed -i "/elogind-user/d" /etc/pam.d/system-auth
echo -e "\nsession    include    elogind-user" >> /etc/pam.d/system-auth

5. OpenRC Agetty Ayarı

Bazı durumlarda agetty, varsayılan olarak /bin/login kullanmaz ve bu nedenle elogind kullanıcı oturumunu başlatamaz.

Ayar:

sed -i "/agetty_options/d" /etc/conf.d/agetty
echo -e "\nagetty_options=\"-l /usr/bin/login\"" >> /etc/conf.d/agetty

Açıklama:

  • -l /usr/bin/login ile agetty doğru login programını çağırır.

  • Bu ayar, sanal konsollardan kullanıcı girişlerinin doğru şekilde yapılmasını garanti eder.

6. Diğer Öneriler ve Notlar

  • elogind, sistemde /run/systemd gibi dizinler oluşturur; böylece bazı uygulamalar systemd’ye ihtiyaç duymadan çalışabilir.

  • Polkit yetkilendirme sorunları genellikle kullanıcıların wheel grubuna dahil olmamasıyla ilişkilidir.

  • OpenRC + elogind ile systemd’ye gerek kalmadan oturum yönetimi sağlanabilir.

Kaynaklar:

- elogind resmi dokümanı: https://www.freedesktop.org/wiki/Software/systemd/elogind/
- OpenRC belgeleri: https://wiki.gentoo.org/wiki/OpenRC
- PAM belgeleri: https://www.linux-pam.org/
- Polkit belgeleri: https://www.freedesktop.org/wiki/Software/polkit/