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
HOME
variabel lingkungan menunjuk ke dalamsudo
perintah 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
sudo
perintah 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 menggunakansudo
sudo -H <rest of the command>
- (dari
sudo
bagian 8 halaman manual)-H ( HOME )
opsi meminta agar kebijakan keamanan menyetelHOME
variabel 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
sudo
direktori 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
sudo
perintah tidak sama di semua sistem dan dapat dikonfigurasi melaluivisudo
perintah, 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.