TL; DR: Coba instal policykit-1
dan policykit-1-gnome
paket.
Anda mungkin memerlukan polkit (alias PolicyKit).
Sebagian besar utilitas administrasi sistem grafis di Ubuntu, termasuk Software Center, biasanya dapat dijalankan tanpa sudo
atau 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-1 dan 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-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 gksu . Ini adalah antarmuka grafis untuk sudo
.
Biasanya gksudo
digunakan 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 gksudo
dari terminal tetapi tidak harus. Anda dapat menjalankannya dari dialog Alt+ F2(jalankan perintah) atau menaruhnya di Exec=
baris .desktop
file (atau salah satu cara lain Anda menjalankan program grafis).
Perhatikan bahwa Anda harus mempertimbangkan gksudo
untuk 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 gedit
Terutama terkenal.
Untuk informasi lebih lanjut tentang masalah sudo
aplikasi grafis dan apa yang harus dilakukan, lihat:
Ada juga cara grafis berbasis polkit ... untuk perintah non-grafis.
gksudo
berfungsi dengan baik untuk menjalankan program grafis dan non-grafis. Anda mungkin harus menggunakannya.
Tetapi alternatif, menggunakan polkit bukan sudo
dan 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.txt
dijalankan, membuat ( atau menyegarkan ) foo.txt
di /root
folder.
pkexec
akan 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
pkexec
hanya 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.
sudo
vs. polkit (beberapa detail teknis, hanya jika Anda tertarik)
Baru gksu
/ gksudo
akan menggunakan polkit daripada sudo
melakukan tugasnya , meskipun versi ini belum diadopsi secara luas. Aku terutama membawanya untuk merekomendasikan pada README
file dalam kode sumber (ditulis oleh Gustavo Noronha Silva), yang menjelaskan perbedaan penting antara sudo
dan 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 gksudo
saat ini di Ubuntu adalah yang tradisional yang menggunakan sudo
).
gksu
sudah ditinggalkan dan dihapus dari Ubuntu 18,04Cara yang mudah adalah membuat
.desktop
file 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 harusgksu
menginstal untuk menggunakan pengaturan ini:sudo apt-get install gksu
Salin Gedit
.desktop file in
/ usr / share / aplikasi /to
~ / .local / share / aplikasi`:dan buka untuk mengedit (seret ke jendela gedit terbuka)
Cari baris: Actions = Window; Document;
Tambahkan nama perintah Anda ke baris (ini bukan nama yang akan Anda lihat di antarmuka Anda, hanya digunakan untuk referensi internal dalam file)
Tambahkan bagian yang sesuai di bagian bawah file:
Tutup file dan seret ke peluncur
Sekarang Anda dapat menjalankan gedit dan Pusat Perangkat Lunak dengan hak sudo:
sumber
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.