Antarmuka untuk su

KDE su menggunakan su sistem untuk mendapatkan hak istimewa. Di bagian ini, aku berencana memerincikan bagaimana KDE su melakukan ini.

Karena beberapa penerapan su (yaitu seseorang dari Red Hat®) tidak menginginkan pembacaan kata sandi dari stdin, KDE su menciptakan sebuah pair pty/tty dan mengeksekusi su dengan filedescriptors standarnya yang terkoneksi ke tty.

Untuk menjalankan perintah yang dipilih pengguna, bukan shell interaktif, KDE su menggunakan argumen -c dengan su. Argumen ini dipahami oleh setiap shell yang saya tahu sehingga harus bekerja secara portable. su meneruskan argumen -c ini ke shell pengguna target, dan shell mengeksekusi program. Contoh perintah: su root -c the_program.

Alih-alih mengeksekusi perintah pengguna secara langsung dengan su, KDE su menjalankan program stub kecil yang disebut kdesu_stub. Stub ini (berjalan sebagai pengguna target), meminta beberapa informasi dari KDE su melalui pair pty/tty (stdin stub dan stdout) dan kemudian menjalankan program pengguna. Informasi yang diteruskan adalah: tampilan X, cookie otentikasi X (jika tersedia), PATH dan perintah untuk dijalankan. Alasan mengapa program stub ini digunakan adalah bahwa cookie X adalah informasi pribadi dan oleh karena itu tidak dapat diteruskan di baris perintah.