GNU/Linux >> Belajar Linux >  >> Linux

sudo vs gksudo. perbedaan?

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):

  1. Meskipun kedua perintah tersebut memang merepresentasikan sudo , UI yang digunakan BUKAN satu-satunya perbedaan dari kedua perintah tersebut.
  2. 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 dalam sudo 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.
  3. Anda masih bisa gunakan sudo perintah untuk meluncurkan aplikasi GUI sebagai root (untuk melihat output konsol aplikasi sebagai contoh), namun Anda perlu menangani HOME (dan lainnya seperti XAUTHORITY , 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 menggunakan sudo
    • sudo -H <rest of the command>
      • (dari sudo bagian 8 halaman manual) -H ( HOME ) opsi meminta agar kebijakan keamanan menyetel HOME 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
    • 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
  4. Perilaku sudo perintah tidak sama di semua sistem dan dapat dikonfigurasi melalui visudo perintah, silakan periksa sudoers(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.


Linux
  1. Df Vs. Du:Mengapa Begitu Banyak Perbedaan??

  2. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  3. Apakah Perbedaan Antara Sudo Dan Gksu Sama Dengan Perbedaan Antara Sudo -i Dan Sudo -s?

  1. Perbedaan Antara Update-grub Dan Update-grub2?

  2. Pindahkan File Ke Direktori Beranda Pengguna Lain (tanpa Sudo)?

  3. perbedaan linux antara sudo crontab -e dan hanya crontab -e

  1. Instal Qt di Ubuntu

  2. sudo -k vs sudo -K

  3. Bagaimana cara menyelidiki file 1,5GB yang tidak dikenal bernama sudo di direktori home Linux saya?