Apa perbedaan antara "gksudo nautilus" dan "sudo nautilus"?

100

Saya telah menggunakan gksudo nautilusdan sudo nautilusmelalui Alt+ F2.

Apa bedanya? Mereka terlihat sangat mirip!

DrKenobi
sumber
penjelasan / diskusi yang sangat membantu termasuk banyak tangkapan layar: psychocats.net/ubuntu/graphicalsudo
nutty about

Jawaban:

113

Diambil dari sini :

Anda tidak boleh menggunakan normal sudountuk memulai aplikasi grafis sebagai root. Anda harus menggunakan gksudo( kdesudodi Kubuntu) untuk menjalankan program tersebut. gksudoset HOME=/root, dan salinan .Xauthorityke tmpdirektori. Ini mencegah file di direktori home Anda menjadi milik root.

Harap dicatat bahwa ini terutama tentang file konfigurasi . Jika Anda menjalankan Nautilus sebagai root, bahkan dengan gksu/ gksudo, dan Anda membuat file atau folder di mana saja dengannya (termasuk di direktori home Anda), file atau folder itu akan dimiliki oleh root. Tapi jika Anda menjalankan Nautilus (atau sebagian besar aplikasi grafis lainnya) sebagai rootdengan sudo, mereka dapat menghemat mereka file konfigurasi di direktori home Anda (bukan root'direktori home s). File konfigurasi tersebut mungkin dimiliki rootdan tidak dapat diakses ketika Anda tidak menjalankannya sebagai root, yang dapat sangat mengacaukan pengaturan Anda, dan bahkan dapat membuat beberapa aplikasi tidak berfungsi sama sekali.

Solusinya, setelah Anda melakukan kesalahan ini, adalah menemukan file-file konfigurasi dan menghapusnya atau chownkembali menjadi milik non- rootpengguna Anda. Banyak file seperti itu dimulai dengan .atau terdapat dalam direktori yang dimulai dengan a .. Beberapa terletak di dalam .configfolder di direktori home Anda. Untuk melihat file dan folder yang dimulai dengan .di Nautilus, tekan Ctrl+ H(ini menunjukkan file tersembunyi .) Untuk melihatnya ls, gunakan tanda -a(atau -A).

Untuk menemukan jika ada file yang tidak Anda miliki di direktori home Anda, Anda dapat menggunakan perintah berikut di terminal:

find $HOME -not -user $USER -exec ls -lad {} \;

yang akan mencantumkan semua file di bawah direktori home yang tidak dimiliki oleh pengguna.

Rmano
sumber
1
Saya sudah menggunakan 'sudo nautilus'. Itu berarti direktori home saya sekarang dimiliki oleh root? (PS: Bahasa Inggris saya tidak sempurna)
DrKenobi
22
Tidak, itu berarti bahwa ketika Anda menjalankan Nautilus sebagai root, semua file yang dibuatnya di direktori home Anda akan dimiliki oleh root. Ini dapat mencakup thumbnail dan file pendukung lainnya yang dibuat Nautilus secara otomatis.
Ryan Thompson 6-10
1
. Segemnet yang dikutip yang Anda gunakan telah membingungkan saya sejak saya pertama kali membacanya; khususnya di mana dikatakan: "Ini mencegah file di direktori home Anda menjadi milik root." .. Saya menguji ini hari ini dengan membuat beberapa file uji, pada 10,04, 10,04 (VM), 10,10 (VM), dan tidak peduli bagaimana saya memulai sudo / gksudo (Terminal-> Nautilus, Terminal-> gedit, Alt + F2 .. .) ... semua kasus menyebabkan baru saya buat dimiliki oleh "root", dengan grup "root" .. Mungkin saya telah melewatkan sesuatu tapi saya pikir bagian dari segmen yang dikutip menyesatkan orang ...
Peter. O
Hmm, saya baru saja mengutip halaman wiki. Saya benar-benar tidak memiliki pemahaman yang mendalam tentang perbedaan antara kedua alat tersebut. Mungkin seseorang di unix.stakexchange.com dapat membantu?
2
@ Peter.O Saya telah memperluas jawaban ini untuk menjawab pertanyaan itu dan menjelaskan dengan tepat file mana yang diperlakukan berbeda sudo, melalui gksu/ gksudo. (@ChrisWilson Merasa bebas untuk memutar kembali atau mempersingkat pengeditan ini jika Anda merasa itu tidak sepenuhnya dalam lingkup jawaban Anda ... menurut saya memang demikian, tetapi itu sepenuhnya adalah panggilan Anda.)
Eliah Kagan
9

Apakah Anda tahu ada pengaya Nautilus yang disebut nautilus-gksuInstal nautilus-gksu yang menambahkan "open as administrator" ke menu klik kanan nautilus?

Catatan: Tidak tersedia di Ubuntu 12,04 dan seterusnya.

robin0800
sumber
1
nautilus-gksutidak lagi tersedia dari Ubuntu 12,04 dan seterusnya.
IQAndreas
Dan tautan Anda hanya menunjukkan bahwa itu tersedia hingga 11.10 ...
Wilf
5

Jika Anda memulai aplikasi grafis dengan sudo, Anda dapat mengacaukan kepemilikan file Anda yang dapat menyebabkan aplikasi Anda rusak. Tidak pernah melakukannya. Periksa Bantuan Komunitas :

Anda tidak boleh menggunakan sudo normal untuk memulai aplikasi grafis sebagai Root . Anda harus menggunakan gksudo (kdesudo di Kubuntu) untuk menjalankan program tersebut. gksudo set HOME = ~ root, dan menyalin .Xauthority ke direktori tmp. Ini mencegah file di direktori home Anda menjadi milik Root. (AFAICT, ini semua yang spesial tentang lingkungan proses yang dimulai dengan gksudo vs sudo).

desgua
sumber
3

sudo secara default mempertahankan variabel $ HOME Anda. Sebagai contoh, jika Anda menjalankan sudo firefoxAnda akan menjalankan dengan hak akses root tetapi konfigurasi Anda. Jika Anda mengubah pengaturan dalam situasi ini, Anda akan mendapatkan bagian dari konfigurasi yang dimiliki oleh root alih-alih id pengguna Anda.

Mark Russell
sumber
Saya suka ketegasan jawaban ini.
Andre Figueiredo
2

sudo -H GUI-application-program

Di Ubuntu (17.10) 17.10.1 dan mungkin versi Ubuntu yang akan datang, gksudan gksudosudah usang. Mereka bekerja di Xorg tetapi tidak di Wayland. Tetapi Anda dapat menggunakan sudo -Huntuk menjalankan program aplikasi GUI tanpa merusak file konfigurasi Anda. Jangan tidak menggunakan plain sudo.

Jika Anda menjalankan Wayland (sistem grafis baru yang menggantikan Xorg), Anda memerlukan perintah xhostjuga.

xhost +si:localuser:root       # if Wayland
sudo -H nautilus --no-desktop

Lihat tautan berikut untuk detail lebih lanjut,

Mengapa tidak gksu / gksudo atau meluncurkan aplikasi grafis dengan sudo bekerja dengan Wayland?

sudodus
sumber
-2

Ditemukan dalam file yang dihasilkan oleh perintah terminal 'info gksudo':

gksu adalah front-end untuk su dan gksudo adalah front-end untuk sudo. Tujuan utama mereka adalah untuk menjalankan perintah grafis yang membutuhkan root tanpa perlu menjalankan emulator terminal X dan menggunakan su secara langsung.

Saya telah menemukan bahwa, dalam banyak kasus, file 'info' memiliki deskripsi yang bermanfaat serta informasi yang berguna tentang opsi. Saya akan sangat menyarankan agar belajar tentang perintah apa saja mulai dengan mengakses file 'info' pada perintah itu.

Untuk pemula, di terminal, ketik atau rekatkan info perintah dengan nama perintah yang Anda minati sebagai parameter. Formatnya adalah info [command_name](ingat untuk tidak memasukkan command prompt atau tanda kurung). Entri terminal yang disarankan untuk pemula adalah:

$ info
$ info info
James
sumber
-3

Jika Anda memilih gksudo nautilus, Anda meminta kata sandi Anda secara grafis. Dengan sudo, Anda memintanya di terminal

winniemiel05
sumber
6
Itu bukan satu-satunya perbedaan, dan sering kali bukan perbedaan yang paling penting. (Lihat beberapa jawaban lain di sini.)
Eliah Kagan