Apakah perbedaan antara sudo dan gksu sama dengan perbedaan antara sudo -i dan sudo -s?

26

Apakah perbedaan antara sudo cmddan gksu cmd, sama dengan perbedaan
antara memulai shell dengan sudo -idan sudo -s?

... Atau dengan kata lain,
Apakah sudo cmd sama sudo -i cmd
dan gksu cmdsama dengan sudo -s cmd?

EDIT: Berdasarkan apa yang saya baca di Halaman Dokumentasi Ubuntu yang isinya:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

The "AFAICT" doen't benar-benar memberi saya keyakinan penuh bahwa tidak ada yang lebih dari itu.


(..a UPDATE terlambat : Saya menguji commemnt-nya hari ini (2 bulan kemudian) tentang:
"Ini mencegah file di direktori home Anda menjadi milik root."
Semua file yang saya buat melalui sudo / gksu semuanya dimiliki oleh " root ", dan grup itu " root ".)


Saya telah membaca bagian-bagiannya info sudodan memperhatikan -idan -s sepertinya melakukan hal yang sama dengan masalah lingkungan AFAICT ...
tapi saya menekan kelebihan .. jadi saya telah mengajukan pertanyaan saya di sini.

PS .. Pertanyaan saya bukan tentang sudo vs gksu
.. Ini lebih lanjut tentang: Apakah gksu sama dengan sudo -s
.. dan jika tidak, bagaimana perbedaannya?

Peter.O
sumber

Jawaban:

16

gksupada dasarnya adalah antarmuka grafis untuk sudo yang memungkinkan perintah grafis dijalankan tanpa perlu menjalankan emulator terminal X dan menggunakan su secara langsung. Secara efektif hanya kulit GTK + untuk perintah superuser.

Jadi jika Anda ingin menjalankan program berbasis GUI sebagai root, Anda akan memanggilnya dengan gksu cmd, alih-alih sudo cmd, yang digunakan untuk menjalankan program konsol sebagai root.


sumber
1
Saya tidak tahu apa yang Anda maksud dengan graphicalfrontend ... aplikasi GTK berjalan cukup bahagia terlepas dari apakah itu dimulai melalui sudo atau gksu ... tetapi menjalankan progam di lingkungan yang berbeda ... (I ' Saya akan menambahkan beberapa pertanyaan lagi untuk menunjukkan mengapa saya mengajukan pertanyaan ...
Peter.O
2
Saya akhirnya mengerti apa yang Anda maksud dengan a graphical frontend. Saya selalu menggunakan terminal untuk menjalankan sudo / gksu ... tetapi dalam semangat brute-force mencoba semua yang dapat saya pikirkan, saya mencoba menjalankan sudodan gksumelalui Alt + F2 ... Bingo! .. sudomenghilang ke dalam kekosongan, tetapi gksunaik ke kesempatan itu dan memberi saya (legendaris) graphical forntend... Ini adalah dialog yang sama dengan yang muncul untuk Synaptic Package Manager dll ...
Peter.O
PS .. Saya baru saja mencoba gksu di terminal baru .. Dialog kata sandi muncul di sana juga ... Saya pasti sudah melihatnya sebelumnya tetapi dikaitkan dengan kata sandi (hanya), dan bukan fakta bahwa itu adalah dialog GUI dari perintah Terminal ... ("Saya mengerti". kata orang buta itu :) ... Terima kasih ...
Peter.O
. menindaklanjuti lebih lanjut, didorong oleh jawaban Anda, tampaknya gksumengubah folder XAUTHORITY, dan sudotidak ... Saya tidak yakin tentang apa itu semua, tapi sepertinya signifikan! ... Ini telah menyelesaikan dilema saya ... (perincian dalam jawaban saya di bawah)
Peter.O
10

sudo -ime-reset lingkungan login ke pengguna target ( root , dalam hal ini). Terutama, itu adalah bahwa HOMEvariabel lingkungan diubah, yang berarti pengguna target ~/.bashrcdimuat.

gksuOleh karena itu, seperti sudo -iyang beralih $HOMEke pengguna root .

Kees Cook
sumber
Terima kasih KC .. Ini mulai masuk akal bagi saya (lambat, lambat) ... tetapi tampaknya jelas bahwa gksu, dengan membuat salinan XAUTHORITY, dan bekerja dari (?) Itu, menempatkan gksu ke dalam kategori bentuk yang cukup terpisah salah satu sudovarian yang saya sebutkan ... dan menyadari ini adalah Aha! moment for me ... Hasilnya adalah: Gunakan gksu untuk aplikasi GUI! .. tapi saya masih punya satu lagi pertanyaan yang belum terselesaikan ... Apakah gksu hanya berlaku untuk aplikasi GTK , atau apakah boleh menggunakan gksu saat menjalankan aplikasi KDE GUI?
Peter.O
5

Ini sebenarnya bukan jawaban, tapi mungkin menarik ...
Saya mulai mendapatkan ide tentang apa yang terjadi dengan perintah su ini,
tapi saya belum cukup di sana ... Saya masih menggunakan gksu. .. Ini lebih merupakan perjalanan pemahaman bagi saya ... dan saya tidak mengerti apakah gksuini valid untuk konsoleatau kate, atau haruskah saya menggunakan varian KDE kdesu..

Berikut adalah beberapa hasil dari beberapa tes yang baru saja saya coba.

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

Hasil ini tidak setuju dengan Halaman Dokumentasi Ubuntu , di mana dikatakan:

 This prevents files in your home directory becoming owned by root

PEMBARUAN: envVariabel XAUTHORITY untuk Terminal yang dipanggil sudo dan gksu berbeda (seperti yang disebutkan pada Halaman Dokumentasi Ubuntu ) ..

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

Ini menunjukkan bahwa gksuitu jelas tidak sama dengan sudo -sperintah yang saya sebutkan dalam pertanyaan ... dan karena itu menjawab pertanyaan otiginal saya (dalam beberapa cara yang masih kabur) ... dan jawaban Chris pasti membuat saya berpikir keras untuk yang satu ini! ... Aku butuh kopi!!

Peter.O
sumber
3

sudo untuk aplikasi baris perintah, gksu / gksudo untuk yang berbasis grafis

karthick87
sumber
Terima kasih, pertanyaan saya mungkin tidak sejelas pemahaman awal saya tentang masalah ini ... Saya terutama berusaha mencari tahu Apa perbedaan spesifik yang membuatnya perlu memiliki kedua perintah .. Tampaknya perbedaan utama ada pada cara yang gksubekerja dari salinan sementara XAUTHORITY .. Saya tidak jelas tentang rincian mengapa XAUTHORITY perlu ditangani secara khusus, tetapi merupakan hal utama yang membedakan perilakunya darisudo
Peter.O