Bagaimana cara mendapatkan GUI sudo password prompt tanpa baris perintah?

10

Saat ini, untuk semua perintah saya yang memerlukan akses root, saya harus mengetiknya di baris perintah.

Saya ingin GUI meminta saya untuk memasukkan kata sandi, ketika sudo diperlukan, daripada harus mengetikkan perintah dari baris perintah.

Apakah ada cara untuk mengaktifkan ini? Sebelumnya satu versi desktop Ubuntu memiliki fitur ini di luar kebiasaan.

Versi Ubuntu ini (yang sekarang saya jalankan) saya perbarui dari instalasi server.

Saya akan menambahkan, akun pengguna saya sudah ditambahkan ke grup sudo. Jadi saya dapat menjalankan perintah seperti sudo geditatau sudo apt-gettetapi saya tidak dapat menginstal perangkat lunak di Pusat Perangkat Lunak Ubuntu.

Sean
sumber

Jawaban:

10

TL; DR: Coba instal policykit-1dan policykit-1-gnomepaket.

Anda mungkin memerlukan polkit (alias PolicyKit).

Sebagian besar utilitas administrasi sistem grafis di Ubuntu, termasuk Software Center, biasanya dapat dijalankan tanpa sudoatau sesuatu yang seperti itu. Anda hanya menjalankannya dengan cara yang sama Anda menjalankan program apa pun.

Ketika tiba saatnya untuk melakukan tugas yang membutuhkan hak akses root, mereka menggunakan polkit untuk melakukan tindakan yang diperlukan. polkit adalah mekanisme terpisah dari sudo, untuk memungkinkan administrator melakukan tindakan sebagai root. Itu diinstal pada sistem Ubuntu desktop tetapi secara default bukan bagian dari instalasi Server Ubuntu.

Dengan demikian perilaku normal dari Pusat Perangkat Lunak adalah bahwa Anda dapat memanggilnya hanya karena software-center, itu tidak akan meminta Anda untuk mengautentikasi pada saat itu, tetapi kemudian ketika Anda mengatakannya untuk menginstal atau menghapus perangkat lunak, ia akan meminta Anda (secara grafis) untuk mengautentikasi.

Kedengarannya dari deskripsi Anda seperti sistem Anda dimulai sebagai sistem Server Ubuntu tanpa GUI, dan kemudian Anda menginstal GUI. Mungkin paket policykit-1Instal policykit-1 dan policykit-1-gnomeInstal policykit-1-gnome belum diinstal. Jika Anda menginstalnya, polkit kemungkinan besar akan mulai bekerja untuk Pusat Perangkat Lunak dan utilitas lainnya.

sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome

Maka Anda harus bisa menjalankan:

software-center

(Atau pilih Pusat Perangkat Lunak secara grafis sebagaimana disediakan oleh lingkungan desktop apa pun yang Anda instal.)

Jika Anda ingin sistem desktop Ubuntu berfungsi penuh, saya sarankan menginstal metapackage untuk "rasa" Ubuntu apa pun yang Anda inginkan untuk mengubah sistem Anda. Pada dasarnya, jika Anda menginginkan sistem desktop Ubuntu biasa, instal ubuntu-desktopInstal ubuntu-desktop .

sudo apt-get update
sudo apt-get install ubuntu-desktop

Ini harus mengisi berbagai celah, seperti tidak memiliki polkit, yang datang dengan menginstal GUI yang lebih minimal pada sistem server Anda. Di sisi lain, jika Anda lebih suka GUI yang lebih minim, Anda bisa menginstal paket polkit tersebut.

Untuk informasi lebih lanjut, lihat Bagaimana Anda menjalankan Server Ubuntu dengan GUI?

sudo dengan otentikasi grafis.

Jika Anda benar-benar perlu menjalankan perintah sebagai root tetapi mendapatkan dialog otentikasi grafis, yang Anda cari adalah gksudo( ataugksu ). Ini disediakan oleh paket gksuInstal gksu . Ini adalah antarmuka grafis untuk sudo.

Biasanya gksudodigunakan untuk menjalankan aplikasi grafis sebagai root (atau pengguna lain selain pengguna yang meluncurkannya). Tetapi Anda juga dapat menggunakannya untuk menjalankan perintah non-grafis - asalkan perintah dapat dijalankan sudo.

Anda dapat lari gksudodari terminal tetapi tidak harus. Anda dapat menjalankannya dari dialog Alt+ F2(jalankan perintah) atau menaruhnya di Exec=baris .desktopfile (atau salah satu cara lain Anda menjalankan program grafis).

Perhatikan bahwa Anda harus mempertimbangkan gksudountuk menggunakan menjalankan aplikasi grafis sebagai root bahkan ketika Anda menjalankannya dari terminal, karena perintah seperti di sudo ...mana ...aplikasi grafis benar-benar dapat memecah konfigurasi per-aplikasi dari pengguna non-root yang menjalankannya. (Untungnya ini bisa diperbaiki.) sudo geditTerutama terkenal.

Untuk informasi lebih lanjut tentang masalah sudoaplikasi grafis dan apa yang harus dilakukan, lihat:

Ada juga cara grafis berbasis polkit ... untuk perintah non-grafis.

gksudoberfungsi dengan baik untuk menjalankan program grafis dan non-grafis. Anda mungkin harus menggunakannya.

Tetapi alternatif, menggunakan polkit bukan sudodan hanya bekerja untuk program non-grafis , adalah pkexec.

Misalnya, jika Anda menjalankan pkexec touch /root/foo.txt, Anda akan diminta dengan dialog otentikasi grafis, dan jika otentikasi berhasil, touch /root/foo.txtdijalankan, membuat ( atau menyegarkan ) foo.txtdi /rootfolder.

  • pkexecakan menggunakan dialog non-grafis, yang membutuhkan terminal, jika tidak dapat membuat dialog grafis. Tetapi ini tidak mungkin terjadi jika Anda menjalankannya melalui fasilitas yang disediakan oleh shell grafis atau lingkungan desktop Anda.
  • Mengapa pkexechanya bekerja untuk program non- graphical? Sebenarnya ia juga menjalankan program grafis, tetapi hanya jika polkit telah dikonfigurasi secara khusus untuk memungkinkannya - yang biasanya tidak dilakukan. Lihat man pkexec(dan versi hulu, dengan tangkapan layar ), jawaban ini dan jawaban itu untuk beberapa detail, jika Anda tertarik.

sudovs. polkit (beberapa detail teknis, hanya jika Anda tertarik)

Baru gksu/ gksudoakan menggunakan polkit daripada sudomelakukan tugasnya , meskipun versi ini belum diadopsi secara luas. Aku terutama membawanya untuk merekomendasikan pada READMEfile dalam kode sumber (ditulis oleh Gustavo Noronha Silva), yang menjelaskan perbedaan penting antara sudodan polkit. Mengutip secara singkat:

PolicyKit memecahkan masalah aplikasi yang membutuhkan hak istimewa lebih tinggi dengan menyediakan fasilitas untuk memungkinkan pengguna mengotentikasi diri mereka sendiri dan untuk aplikasi untuk memverifikasi informasi otentikasi dan otorisasi. Aplikasi harus disusun sedemikian rupa sehingga semua operasi istimewa dilakukan oleh (kecil) layanan D-Bus kecil, yang diperintahkan oleh kode unprivileged. Semua "tindakan" yang dilakukan perlu otorisasi yang tepat, yang ditangani melalui Policykit.

4. Mengapa memelihara gksu?

Jadi, ini pada dasarnya membuat gksu tidak perlu, karena aplikasi tidak perlu lagi dijalankan sebagai pengguna istimewa, dan otentikasi pengguna dilakukan oleh Agen Auth PolicyKit. Tetapi aplikasi perlu direaktor ulang untuk mengadopsi struktur baru ini, dan ada beberapa kasus di mana yang Anda inginkan memang sesuatu yang menjalankan program sebagai root.

Masalah-masalah ini mendasari situasi yang saya yakin Anda alami:

  • Pusat Perangkat Lunak dirancang untuk menggunakan polkit untuk peningkatan hak istimewa, sehingga hanya tindakan spesifik yang perlu dilakukan sebagai root. Untuk ini, perlu polkit, yang hilang (atau rusak) di sistem Anda.
  • Karena dirancang untuk menggunakan polkit, tidak ada peluncur buatan untuk memulai Pusat Perangkat Lunak sebagai root. polkit menghilangkan kebutuhan untuk menjalankan alat administrasi grafis sebagai root, sebagian besar waktu.
  • Tetapi kadang-kadang Anda benar-benar perlu menjalankan program grafis sebagai root. Dalam hal ini, Anda dapat menggunakan gksu/ gksudo.
    (... Yang akhirnya mungkin menggunakan polkit di belakang layar - tetapi yang gksudosaat ini di Ubuntu adalah yang tradisional yang menggunakan sudo).
Eliah Kagan
sumber
1
Hai Eliah, ya, itu adalah server tanpa GUI dan saya baru saja mencoba GUI ubuntu, saya menjalankan perintah sudo apt-get install ubuntu-desktop im tidak yakin apakah kit kebijakan diinstal. Akan mencoba menginstalnya. Saat ini ditingkatkan dari 12,04 menjadi 14,04.
Sean
Saya mengalami situasi di mana saya memiliki aplikasi GUI yang ingin saya jalankan seperti biasa (non-root), tetapi hanya perlu membaca dari port serial yang dimiliki oleh root. Ketidakmampuan untuk hanya memberikan program ini satu hak istimewa benar-benar menjengkelkan (dengan kata lain, saya ingin sistem kemampuan objek penuh).
CMCDragonkai
3
Tolong jangan yang gksusudah ditinggalkan dan dihapus dari Ubuntu 18,04
Nathan F.
5

Cara yang mudah adalah membuat .desktopfile khusus , atau menambahkan perintah Anda ke file yang sudah ada, menanyakan kata sandi Anda melalui GUI (gksu). Pada contoh di bawah ini, saya menambahkan perintah untuk menjalankan Gedit dan Software Center dengan hak sudo ke peluncur Gedit. Anda harus gksumenginstal untuk menggunakan pengaturan ini:sudo apt-get install gksu

  1. Salin Gedit .desktop file in/ usr / share / aplikasi / to~ / .local / share / aplikasi`:

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    

    dan buka untuk mengedit (seret ke jendela gedit terbuka)

  2. Cari baris: Actions = Window; Document;

  3. Tambahkan nama perintah Anda ke baris (ini bukan nama yang akan Anda lihat di antarmuka Anda, hanya digunakan untuk referensi internal dalam file)

    Actions=Window;Document;gedit;Ubuntu Software Center;
    
  4. Tambahkan bagian yang sesuai di bagian bawah file:

    [Desktop Action gedit]
    Name=Gedit  (with gksu)
    Exec=gksudo gedit
    OnlyShowIn=Unity;
    
    [Desktop Action Ubuntu Software Center]
    Name=Ubuntu Software Center (with gksu)
    Exec=gksudo /usr/bin/software-center
    OnlyShowIn=Unity;
    
  5. Tutup file dan seret ke peluncur

Sekarang Anda dapat menjalankan gedit dan Pusat Perangkat Lunak dengan hak sudo:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Yakub Vlijm
sumber
Memang. Saya tidak keberatan. Alasan saya berkomentar tentang USC adalah bahwa bagian utama dari pertanyaan adalah tentang bagaimana OP dapat membuat sistem mereka yang dibuat dari pekerjaan instalasi server seperti sistem desktop Ubuntu normal sehubungan dengan mengotentikasi secara grafis untuk tugas-tugas administrasi. Jawaban saya berfokus pada hal itu dan menjelaskan generalisasi dari menjalankan program sebagai root secara grafis. Dengan melakukan itu, ia berhemat pada mekanisme gksu/ gksudo. Jadi jawaban Anda baik dan perlu! Saya hanya berharap OP juga menginstal / memperbaiki polkit, karena saya pikir itu akan membuat OS bekerja seperti yang mereka inginkan.
Eliah Kagan