menggunakan sudo pada aplikasi GUI

10

Ketika saya menggunakan kubuntu, saya selalu bisa membuka aplikasi X dengan sudo, sudo katemisalnya. Sekarang saya telah beralih ke lengkungan yang tidak berfungsi. Saya tahu saya selalu diberitahu untuk menggunakan kdesu, tetapi pengaturan apa yang ada di kubuntu yang memungkinkan saya menggunakan sudo pada aplikasi X yang mencegah saya melakukannya di arch?

Sunting :
Maaf, saya melakukan sendiri apa yang sangat saya benci> _ <

Inilah yang saya coba lakukan:

[falmarri @ falmarri-z-arch Downloads] $ sudo kate
Kata sandi: 
Tidak ada protokol yang ditentukan
kate: tidak dapat terhubung ke server X: 0.0

Catatan ini hanya sesi terminal biasa menggunakan konsole, saya tidak menggunakan SSH

/ etc / sudoers :

## file sudoers.
##
## File ini HARUS diedit dengan perintah 'visudo' sebagai root.
## Kegagalan untuk menggunakan 'visudo' dapat mengakibatkan kesalahan sintaksis atau file
## yang mencegah sudo berjalan.
##
## Lihat halaman manual sudoers untuk perincian tentang cara menulis file sudoers.
##

##
## Spesifikasi alias host
##
## Kelompok mesin. Ini mungkin termasuk nama host (opsional dengan wildcard),
## Alamat IP, nomor jaringan atau netgroup.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Spesifikasi alias pengguna
##
## Grup pengguna. Ini dapat terdiri dari nama pengguna, uids, grup Unix,
## atau netgroups.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Spesifikasi alias Cmnd
##
## Kelompok perintah. Sering digunakan untuk mengelompokkan perintah terkait bersama.                                                               
# Cmnd_Alias ​​PROSES = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Spesifikasi standar                                                                                                            
##                                                                                                                                   
## Anda mungkin ingin mempertahankan beberapa variabel lingkungan berikut                                                                  
## saat menjalankan perintah melalui sudo.                                                                                                   
##                                                                                                                                   
## Pengaturan lokal                                                                                                                   
# Default env_keep + = "LANG LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Jalankan aplikasi X melalui sudo; HOME digunakan untuk menemukan                                                                         
##. File otoritas resmi. Perhatikan bahwa program lain menggunakan HOME untuk menemukan                                                                      
File konfigurasi ## dan ini dapat menyebabkan peningkatan hak istimewa!                                                                    
 Default env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## Pengaturan jalur sumber daya X11                                                                                                        
 Default env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Pengaturan jalur desktop                                                                                                             
 Default env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Izinkan perintah sudo-run untuk mewarisi sesi ConsoleKit penelepon
# Default env_keep + = "XDG_SESSION_COOKIE"
##
## Membatalkan komentar untuk mengaktifkan metode input khusus. Perawatan harus diambil sebagai
## ini memungkinkan pengguna untuk menumbangkan perintah yang sedang dijalankan melalui sudo.
 Defaults env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Membatalkan komentar untuk mengaktifkan logging dari output perintah, kecuali untuk
## sudoreplay dan reboot. Gunakan sudoreplay untuk memainkan kembali sesi yang dicatat.
# Defaults log_output
# Default! / Usr / bin / sudoreplay! Log_output
# Default! / Usr / local / bin / sudoreplay! Log_output
# Default! / Sbin / reboot! Log_output

##
## Spesifikasi alias runas
##


Default: falmarri timestamp_timeout = 10

##
## Spesifikasi hak istimewa pengguna
##
root ALL = (ALL) ALL

## Membatalkan komentar untuk memungkinkan anggota roda grup untuk menjalankan perintah apa pun
% wheel ALL = (ALL) ALL

## Hal yang sama tanpa kata sandi
#% wheel ALL = (ALL) NOPASSWD: ALL

## Membatalkan komentar untuk mengizinkan anggota sudo grup untuk mengeksekusi perintah apa pun
#% sudo ALL = (ALL) ALL

## Batalkan komentar untuk mengizinkan pengguna menjalankan sudo jika mereka tahu kata sandinya
## dari pengguna mereka menjalankan perintah sebagai (root secara default).
# Defaults targetpw # Mintalah kata sandi pengguna target
# ALL ALL = (ALL) ALL # PERINGATAN: hanya gunakan ini bersama dengan 'Defaults targetpw'

## Baca file drop-in dari /etc/sudoers.d
## (tanda '#' di sini tidak menunjukkan komentar)
#includedir /etc/sudoers.d

Falmarri
sumber
Tentukan "tidak bekerja". Kesalahan apa yang Anda dapatkan? Sudahkah Anda memasang sudodengan benar? Bisakah Anda memulai aplikasi non-GUI menggunakan sudo?
sepp2k
ps. Anda juga dapat mencoba aplikasi bernama suxyang pada dasarnya "su with X"
xenoterracide

Jawaban:

6

Ini terlihat seperti konfigurasi yang disengaja di Arch Linux. Lihat ini untuk diskusi dengan tautan ke solusi.

Tip terbaik di sana tampaknya menambahkan "DISPLAY XAUTHORITY" ke "env_keep" default di /etc/sudoers.

Fedora memiliki /etc/sudoersyang berikut ini dan ini memungkinkan sudo somexapp untuk berhasil.

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
fschmitt
sumber
Saya membaca file / etc / sudoers dan menyebutkan fakta bahwa ini adalah fitur. Saya membatalkan komentar pada garis yang diminta, tetapi masih tidak berfungsi. Saya memposting file / etc / sudoers saya di pertanyaan saya.
Falmarri
Saya menambahkan pengaturan Fedora ke jawaban saya. Saya pikir Anda masih ketinggalan DISPLAY dan XAUTHORITY dalam file yang Anda kirim.
fschmitt
Sebenarnya ini sepertinya berfungsi sekarang. Saya tidak yakin apakah saya lupa menyimpan atau sesuatu. Terima kasih =]
Falmarri
9

Program grafis tidak boleh dijalankan dengan sudo. Cara yang benar adalah menggunakan kdesudoKDE untuk menjalankan program GUI sebagai root, atau gksudi GNOME.

Menjalankan program grafis sebagai root memiliki potensi untuk menyebabkan masalah serius, itu sebabnya pembungkus disediakan. Baca utas Arch mailing list ini untuk masalah serius yang bisa Anda temui saat mencoba mengelabui sudomeluncurkan aplikasi GUI.

andrewsomething
sumber
Saya bingung apa yang dikatakan utas itu. Apakah ini hanya masalah saat menjalankan X sebagai root? Saya tidak pernah punya masalah menjalankan sudo dari sesi X
Falmarri
3
Menjalankan aplikasi GUI sebagai root dengan sudo berpotensi mengubah file yang akan dimiliki oleh root. Satu file jahat yang bisa terjadi adalah ~/.ICEauthority. Ini dapat mencegah Anda dari masuk. Google "ICEauthority" dan Anda akan melihat bahwa hasilnya penuh dengan orang-orang yang tidak dapat masuk ke sistem mereka karena file tersebut dimiliki oleh root. Saya baru saja memilih yang seperti itu di Arch, OS pengguna.
andrewsomething