# Buku petunjuk &kdesu;

## Pengenalan

Selamat datang di &kdesu;! &kdesu; adalah front end grafis untuk perintah `su` &UNIX; untuk K Desktop Environment. Ini memungkinkan kamu untuk menjalankan programkan sebagai pengguna yang berbeda dengan menyuplai kata sandi untuk pengguna tersebut. &kdesu; adalah program yang tidak diprivasi; ia menggunakan `su` sistem.

&kdesu; memiliki salahsatu fitur tambahan: ia bisa mengingat kata sandi untukmu. Jika kamu menggunakan fitur ini, kamu hanya perlu memasukkan kata sandi sekali untuk setiap perintah. Lihatlah sec-password-keeping untuk informasi selebihnya atas hal ini dan analisis keamanan.

Program ini adalah bermaksud untuk dijalankan dari baris perintah atau dari file-file `.desktop`. Dengan demikian ia menanyakan kata sandi `root` menggunakan sebuah dialog &GUI;, aku menganggapnya lebih sebagai baris perintah <-> lem &GUI; bukan program &GUI; murni.

Sejak `kdesu` tidak lagi diinstal dalam `$(kde4-config --prefix)`/bin tetapi dalam `kde4-config --path libexec` dan oleh karenanya tidak di `Path`-mu, kamu harus menggunakan `$(kde4-config --path libexec)`kdesu`` untuk meluncurkan `kdesu`.

## Menggunakan &kdesu;

Penggunaan &kdesu; cukup mudah. Sintaksnya seperti ini:

    kdesu -c  perintah -d -f  file -i  nama ikon -n -p  prioritas -r -s -t -u  pengguna --noignorebutton --attach  winid

    kdesu Opsi-opsi Generik &kde; Opsi-opsi Generik &Qt;

Opsi-opsi baris perintah dijelaskan di bawah.

`-c `perintah``

- Penentuan perintah ini untuk berjalan sebagai root. Itu harus dilalui dalam satu argumen. Jadi jika, misalnya, kamu ingin menjalankan sebuah pengelola file baru kamu harus memasukkan prompt: `$(kde4-config --path libexec)`kdesu `-c `&dolphin;````

`-d`

- Tampilkan informasi debug.

`-f `file``

- Opsi ini memungkinkan &kdesu; penggunaan yang efisien dalam file `.desktop`. Yang memberi tahu &kdesu; untuk memeriksa file yang ditentukan oleh `file`. Jika file ini dapat ditulis oleh pengguna saat ini, &kdesu; akan mengeksekusi perintah sebagai pengguna saat ini. Jika ia tidak dapat ditulis, perintah dieksekusi sebagai `pengguna` (bakunya kepada root).

  `file` telah dievaluasikan seperti ini: jika `file` memulai dengan sebuah `/`, ia telah diambil sebagai sebuah nama file yang mutlak. Meskipun demikian, ia telah diambil sebagai nama dari sebuah file konfigurasi &kde; global.

`-i` `nama ikon`

- Ikon ditentukan untuk penggunaan di dalam dialog kata sandi. Mungkin kamu hanya menentukan nama, tanpa ekstensi apa pun.

  Misalnya menjalankan &konqueror; dalam mode filemanager dan menampilkan ikon &konqueror; di dalam dialog kata sandi:

      $(kde4-config --path libexec)kdesu  -i konqueror
      -c "konqueror --profile filemanagement"

`-n`

- Jangan menjaga kata sandi. Ini menonfungsikan kotak-centang jaga kata sandi di dalam dialog kata sandi.

`-p` `prioritas`

- Set nilai prioritas. Prioritas adalah sebuah nomor bebas antara 0 dan 100, yang mana 100 maksudnya berprioritas lebih tinggi, dan 0 maksudnya berprioritas lebih rendah. Bakunya adalah 50.

`-r`

- Gunakan penjadwalan waktu nyata.

`-s`

- Hentikan daemon kdesu. Lihatlah sec-password-keeping.

`-t`

- Fungsikan output terminal. Ini menonfungsikan penjagaan kata sandi. Ini adalah sebagian besar untuk tujuan pendebugan; jika kamu ingin menjalankan aplikasi mode console, gunakan `su` standar sebagai gantinya.

`-u` `pengguna`

- Penggunaan yang paling umum &kdesu; adalah menjalankan perintah sebagai superuser, kamu bisa menyuplai nama pengguna dan kata sandi apa pun yang sesuai.

## Internal

### Autentikasi X

Program yang kamu eksekusi akan berjalan di bawah id pengguna root dan akan biasanya tidak memiliki otoritas untuk mengakses displai X kamu. &kdesu; dapat melakukan ini dengan menambahkan sebuah cookie autentikasi untuk displaimu ke sebuah file `.Xauthority` temporer. Sesudah perintahnya keluar, file ini dihapus.

Jika kamu tidak menggunakan cookie X, kamu berada pada milikmu. &kdesu; akan mendeteksi ini dan tidak akan menambahkan cookie tetapi kamu nanti harus memastikan bahwa root diperbolehkan untuk mengakses ke displaimu.

### Antarmuka untuk `su`

&kdesu; menggunakan `su` sistem untuk mendapatkan hak istimewa. Di bagian ini, aku berencana memerincikan bagaimana &kdesu; melakukan ini.

Karena beberapa penerapan `su` (&ie; seseorang dari &RedHat;) tidak menginginkan pembacaan kata sandi dari `stdin`, &kdesu; menciptakan sebuah pair pty/tty dan mengeksekusi `su` dengan filedescriptors standarnya yang terkoneksi ke tty.

Untuk menjalankan perintah yang dipilih pengguna, bukan shell interaktif, &kdesu; 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`, &kdesu; menjalankan program stub kecil yang disebut kdesu_stub. Stub ini (berjalan sebagai pengguna target), meminta beberapa informasi dari &kdesu; 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.

### Pemeriksaan Kata Sandi

&kdesu; akan memeriksa kata sandi yang kamu masukkan dan memberikan sebuah pesan error jika tidak benar. Pemeriksaan dilakukan dengan mengeksekusi sebuah program uji: `/bin/true`. Jika ini berhasil, kata sandi diasumsikan benar.

### Penjagaan Kata Sandi

Untuk kesenanganmu, &kdesu; mengimplementasikan fitur jaga kata sandi. Jika kamu mementingkan keamanan, kamu seharusnya membaca paragraf ini.

&kdesu; memungkinkan mengingat kata sandi membukakan sebuah lubang keamanan (kecil) di sistem kamu. Jelas, &kdesu; tidak mengizinkan siapa pun selain id pengguna kamu untuk menggunakan kata sandi, tetapi, jika dilakukan tanpa hati-hati, ini akan menurunkan tingkat keamanan `root` ke pengguna normal (kamu). Seorang peretas yang membobol akunmu, akan mendapatkan akses `root`. &kdesu; mencoba untuk mencegah ini. Skema keamanan yang digunakannya, setidaknya menurut saya, cukup aman dan sudah dijelaskan di sini.

&kdesu; menggunakan daemon, yang disebut kdesud. Daemon mendaftar ke sebuah soket &UNIX; di `/tmp` untuk perintah. Mode soketnya adalah 0600 jadi hanya id pengguna kamu yang dapat terkoneksi kepadanya. Jika penjagaan kata sandi difungsikan, &kdesu; mengeksekusi perintah melalui daemon ini. Ia menulis perintah dan kata sandi `root` ke soket dan daemon mengeksekusi perintah menggunakan `su`, seperti yang dijelaskan sebelumnya. Setelah ini, perintah dan kata sandi tidak dibuang. Sebaliknya, mereka disimpan untuk waktu yang ditentukan. Ini adalah nilai batas waktu dari dalam modul kendali. Jika ada permintaan lain untuk perintah yang sama akan datang dalam periode waktu ini, klien tidak harus memberikan kata sandi. Untuk menjaga dari peretas yang membobol akun kamu yang mencuri kata sandi dari daemon (misalnya, dengan melampirkan debugger), daemon yang terinstal set-group-id nogroup. Ini seharusnya mencegah semua pengguna normal (termasuk kamu) dari pendapatan kata sandi dari proses kdesud. Juga, daemon menetapkan variabel lingkungan `DISPLAY` ke nilai yang dimilikinya ketika dimulai. Satu-satunya hal seorang peretas yang bisa lakukan adalah menjalankan aplikasi di displaimu.

Satu titik lemah dalam skema ini adalah bahwa program yang kamu jalankan mungkin tidak ditulis dengan keamanan yang dimaksud (seperti program `root` setuid). Ini berarti mereka mungkin ada serangan atau masalah lain dan seorang peretas dapat mengeksploitasinya.

Penggunaan fitur penjagaan kata sandi merupakan pertukaran antara keamanan dan kenyamanan. Aku mendorongmu untuk memikirkannya dan memutuskan sendiri apakah kamu mau menggunakannya atau tidak.

## Penulis

&kdesu;

Hakcipta 2000 &Geert.Jansen;

&kdesu; ditulis oleh &Geert.Jansen;. Agak didasarkan pada &kdesu; Pietro Iglio's, versi 0.3. Pietro dan saya setuju bahwa saya akan memelihara program ini di masa depan.

Penulis bisa dihubungi melalui email di &Geert.Jansen.mail;. Silakan laporkan bug apa pun yang kamu temukan kepadaku sehingga aku bisa memperbaikinya. Jika kamu punya saran, jangan ragu untuk menghubungi saya.

Wantoyowantoyek@gmail.com

&underFDL; &underArtisticLicense;