Apa itu ConsoleKit dan PolicyKit? Bagaimana mereka bekerja?

42

Saya telah melihat bahwa GNU / Linux baru-baru ini menggunakan ConsoleKit dan PolicyKit. Untuk apa mereka? Bagaimana mereka bekerja?

Jawaban terbaik harus menjelaskan masalah apa yang masing-masing coba selesaikan, dan bagaimana mereka bisa mengatasinya.

Saya adalah pengguna lama GNU / Linux, sejak saat hal-hal seperti itu tidak ada. Saya telah menggunakan Slackware dan baru-baru ini Gentoo. Saya adalah pengguna / admin / pengembang tingkat lanjut, sehingga jawabannya dapat (dan seharusnya!) Setepat dan seakurat mungkin. Saya ingin memahami cara kerja hal-hal ini, sehingga saya dapat menggunakannya (sebagai pengguna atau sebagai pengembang) dengan cara terbaik.

Denilson Sa Maia
sumber

Jawaban:

24

Singkatnya, consolekit adalah layanan yang melacak sesi pengguna (yaitu saat pengguna masuk). Ini memungkinkan pengalihan pengguna tanpa keluar (banyak pengguna dapat masuk pada perangkat keras yang sama pada saat yang sama dengan satu pengguna aktif). Ini juga digunakan untuk memeriksa apakah suatu sesi adalah "lokal" yaitu jika pengguna memiliki akses langsung ke perangkat keras (yang dapat dianggap lebih aman daripada akses jarak jauh). Dokumentasi ConsoleKit .

PolicyKit memungkinkan kemampuan fine-tuned di lingkungan desktop. Secara tradisional hanya pengguna istimewa (root) diizinkan untuk mengkonfigurasi jaringan. Namun sementara di lingkungan server itu adalah asumsi yang masuk akal bahwa itu akan terlalu membatasi untuk tidak diizinkan untuk terhubung ke hotspot di laptop, misalnya. Namun Anda mungkin masih tidak ingin memberikan hak istimewa penuh kepada orang ini (seperti menginstal program) atau mungkin ingin membatasi opsi untuk beberapa orang (misalnya pada laptop anak-anak Anda hanya jaringan 'tepercaya' dengan filter parental yang dapat digunakan). Sejauh yang saya ingat itu berfungsi seperti:

  • Program mengirim pesan ke daemon melalui dbus tentang tindakan
  • Daemon menggunakan pustaka / konfigurasi PolicyKit (sebenarnya daemon PolicyKit) untuk menentukan apakah pengguna diizinkan untuk melakukan suatu tindakan. Mungkin saja kondisi tertentu harus dipenuhi (seperti memasukkan kata sandi atau akses perangkat keras).
  • Daemon melakukan tindakan sesuai dengan itu (mengembalikan kesalahan autentik atau melakukan tindakan)

Dokumentasi PolicyKit .

EDIT saat ini, ConsoleKit sebagian besar digantikan oleh logind , yang merupakan bagian dari systemd , meskipun ada elogind versi mandiri .

Maciej Piechotka
sumber