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.