gksudo adalah frontend berbasis GTK dari sudo (BTW, kdesudo adalah frontend berbasis Qt), namun (secara default) menangani lebih banyak variabel lingkungan (HOME , XAUTHORITY , dll.) daripada sudo sehingga membuat menjalankan perintah sebagai root lebih aman.
Sejauh yang saya lihat hanya jawaban @Logics yang cukup benar (@Ignacio Vazquez-Abrams tidak lengkap). Berikut adalah klarifikasi coba-untuk-hindari untuk jawaban/komentar @Davros @knitti (Mohon hapus/edit jika tidak diperlukan):
- Meskipun kedua perintah tersebut memang merepresentasikan
sudo, UI yang digunakan BUKAN satu-satunya perbedaan dari kedua perintah tersebut. - Menjalankan program GUI BUKAN satu-satunya situasi ketika Anda harus menggunakan gk/kdesudo, sebagai gantinya Anda harus menggunakan gk/kdesudo setiap kali Anda tidak dapat menentukan apakah perintah akan membuat/menulis file ke direktori home Anda (yang
HOMEvariabel lingkungan menunjuk ke dalamsudoperintah dalam beberapa sistem dan situasi). Tidak semua aplikasi GUI menulis ke direktori home Anda dan tidak semua aplikasi CLI tidak , jadi jenis perintah bukanlah poin kuncinya. - Anda masih bisa gunakan
sudoperintah untuk meluncurkan aplikasi GUI sebagai root (untuk melihat output konsol aplikasi sebagai contoh), namun Anda perlu menanganiHOME(dan lainnya sepertiXAUTHORITY,DISPLAY, input-method-related-stuff, dll.) variabel lingkungan dengan benar sehingga aplikasi yang diluncurkan tidak akan gagal, kehilangan fungsionalitas, atau melakukan hal yang sangat buruk. Berikut ini adalah rekomendasi saya saat ini untuk menggunakansudosudo -H <rest of the command>- (dari
sudobagian 8 halaman manual)-H ( HOME )opsi meminta agar kebijakan keamanan menyetelHOMEvariabel lingkungan ke direktori home dari pengguna target (root secara default) seperti yang ditentukan oleh database kata sandi. Bergantung pada kebijakannya, ini mungkin merupakan perilaku default. - Ini setidaknya harus mencegah pembuatan file di
sudodirektori home pemanggil
- (dari
sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>- Hal ini akan membuat
dijalankan di terminal TTY dan ditampilkan di lingkungan desktop Anda
- Hal ini akan membuat
- Perilaku
sudoperintah tidak sama di semua sistem dan dapat dikonfigurasi melaluivisudoperintah, silakan periksasudoers(5)halaman manual untuk info lebih lanjut.
sudo meminta kata sandi pada baris perintah, dan gksudo muncul kotak dialog untuk itu.
Menggunakan sudo biasa untuk menjalankan program grafis terkadang akan mengacaukan izin pada beberapa file. Agar aman, gksudo (atau kdesudo yang sesuai) harus digunakan untuk menjalankan program dengan GUI. Saya pikir ini benar-benar bug, meskipun saya mendengar penjelasan bahwa gksudo memahami variabel server X dan sudo tidak mungkin menimbulkan masalah. Sama seperti tip; jika Anda menjalankan program grafis sebagai root, alih-alih membuka satu terminal untuk setiap program yang ingin Anda jalankan, ketik ALT-F2 (alt dan tombol fungsi 2 secara bersamaan), lalu ketik kotak dialog yang muncul "gksudo program" tanpa tanda kutip dan program diganti dengan aplikasi yang ingin Anda jalankan.