Ada dua cara umum untuk menjalankan aplikasi secara grafis sebagai root (atau, lebih umum, sebagai pengguna lain). Program seperti gksu
,, gksudo
dan kdesudo
merupakan antarmuka grafis untuk sudo
. Sebaliknya, pkexec
adalah antarmuka grafis untuk PolicyKit .
Ketika menjalankan program secara manual sebagai root (atau sebagai pengguna non-root lainnya), apa keuntungan / kerugian penggunaannya pkexec
, jika dibandingkan dengan metode tradisional menggunakan sudo
frontend?
Jawaban:
PolicyKit lebih dapat dikonfigurasi, meskipun
pkexec
tidak menggunakan konfigurasi ini. Juga,pkexec
tunjukkan kepada pengguna path lengkap dari program yang akan dimulai, untuk itu pengguna sedikit lebih yakin apa yang akan terjadi. Apa yang disebut 'kebijakan' dari PolicyKit dapat digunakan untuk mengatur lebih banyak pengaturan uang muka. Misalnya, apakah kata sandi harus diingat.Sesuatu yang saya dapatkan dari
pkexec
manual:Informasi lebih lanjut tentang kebijakan atau definisi tindakan dari
pkexec
manual:sumber
pkexec
untuk menjalankan aplikasi grafis (saya belum pernah melakukannya ...). Jawaban Anda menjelaskan mengapa tidak ada (atau setidaknya mengapa lingkungan khusus harus ditentukan, untuk melakukannya).pkexec
, dalam arti apa kemampuannya ("izin") dibatasi? Saya memberikan program kemampuan untuk melakukan apa pun ketika saya menjalankannya dengansudo
atau sebuahsudo
frontend ... dalam arti apa menjalankan program sebagai root denganpkexec
tidak juga melakukan ini?pkexec
memfasilitasi itu, ataupkexec
hanya menjalankan hal-hal sebagai root dengan kemampuan tidak terbatas? Thepkexec
kutipan pengguna Anda termasuk dalam dokumen jawaban Anda bagaimana menulis aturan untuk menentukan siapa yang dapat menjalankan program sebagai root (atau yang lain, pengguna non-root), daripada program apa yang bisa dilakukan.pkexec
lebih dapat dikonfigurasi daripadasudo
, dan mengingat diskusi yang kami lakukan di komentar, sepertinya tidak demikian. Apakah Anda mempertimbangkan untuk mengedit jawaban Anda untuk menjelaskansudo
konfigurabilitas dan membandingkan / membandingkannya denganpkexec
, atau mengedit jawaban Anda untuk mengatakan bahwa perbedaannya adalah sesuatu selain konfigurasiabilitas?Dengan sudo Anda dapat mengatur per pengguna dan kebijakan program tentang apakah akan mempertahankan atau mereset lingkungan pemanggil dalam konteks sudo. Kebijakan env_reset diatur secara default.
Anda tidak dapat menjalankan aplikasi grafis melalui pkexec tanpa secara eksplisit mengonfigurasinya untuk melakukannya. Karena ini hanyalah hasil dari pengaturan ulang lingkungan, hal ini juga berlaku untuk sudo. Namun perlu dicatat bahwa baik pkexec maupun sudo tidak dapat mencegah aplikasi jahat berjalan sebagai root untuk mengambil semua informasi yang diperlukan dari manajer tampilan atau file cookie pengguna X11. Yang terakhir, keduanya atau serupa, bahkan dapat dilakukan oleh aplikasi non root tergantung pada keadaan.
Sudo tidak memerlukan daftar pengguna yang eksplisit. Mendaftarkan grup pengguna apa pun atau bahkan menetapkan izin untuk semua pengguna secara umum dapat dilakukan. Arahan target_pw memungkinkan pengguna untuk mengotentikasi dengan kredensial pengguna dalam konteks siapa yang ingin mereka jalankan aplikasi, yaitu root. Selain itu, program su (g / gtksu / kdesu) yang sama tradisionalnya dapat digunakan untuk melakukan hal yang sama tanpa konfigurasi khusus.
sudo juga memungkinkan pengguna untuk tetap diautentikasi untuk waktu yang ditentukan. Opsi ini bernama batas waktu, dapat dikonfigurasi secara global, per pengguna, atau per aplikasi. Otentikasi dapat dipertahankan per tty atau secara global per pengguna.
Walaupun pkexec mungkin tidak melakukan validasi dari ARGUMENTS yang diteruskan ke PROGRAM, sudo memang memiliki fitur ini. Diakui, Anda dapat dengan mudah mengacaukan ini, dan itu biasanya tidak dilakukan.
Anda dapat mengubah sedikit bagaimana Anda ingin program dijalankan melalui pkexec: ikon, teks untuk ditampilkan, Anda bahkan dapat memiliki hal-hal pelokalan dan semua itu. Tergantung pada keadaan ini memang bagus. Sedih, bahwa seseorang merasakan kebutuhan untuk menemukan kembali roda untuk fitur ini. Ini mungkin akan menjadi sesuatu untuk dimasukkan ke dalam pembungkus gtksudo / kdesu grafis.
Policykit hanya kerangka konfigurasi terpusat saat itu. Sayangnya bukan yang cantik. File XML XML PK jauh lebih rumit daripada aplikasi apa pun yang bisa menyediakan file biner secara native. Dan tidak ada yang akan jadi looney untuk menggunakan biner ... oh gconf ... sudahlah.
sumber
pkexec
dapat menjalankan GUI tanpa mengkonfigurasi: askubuntu.com/a/332847/89385Beberapa hal
pkexec
yang berbeda darisudo
dan bagian depannya:pkexec
tanpa secara eksplisit mengkonfigurasi untuk melakukannya.pkexec
: ikon, teks untuk ditampilkan, apakah akan mengingat kata sandi atau tidak, apakah akan memungkinkannya berjalan secara grafis dan beberapa lagi.sudo
Anda harus terdaftar dalamsudoers
file sebagai admin .gksudo
mengunci keyboard, mouse, dan fokus ketika meminta kata sandi,pkexec
tidak. Namun dalam kedua kasus penekanan tombol dapat didengar .pkexec
Anda bekerja di lingkungan yang sedikit lebih bersih.Coba misalnya:
sumber
root
bersamapkexec
. Apakah dapat dikonfigurasi, pengguna mana yang dapat menggunakanpkexec
sama sekali (bahkan jika mereka tahu kata sandi pengguna lain yang diizinkan melakukannya)?su
dapat dikonfigurasi dengan cara ini. Ketika saya mencoba untuksu
non-root
pengguna lain sepertiguest
pada sistem Oneiric, itu memberitahu saya bahwa saya tidak diizinkan untuk melakukannya. (Sebaliknya, ketika saya mencoba menggunakanpkexec
sepertiguest
pada Oneiric atau Precise, saya mendapatkan apa yang tampak seperti kesalahan pernyataan, yang dapat segera saya laporkan sebagai bug, karena saya seharusnya tidak mendapatkannya meskipun tidak diizinkan.)sudo
dan bagian depannya juga dapat diubah seperti dijelaskan pada poin 2. Anda dapat menjalankan program dengangksu
ataugksudo
menampilkan teks yang disesuaikan , berhenti membutuhkan kata sandi beberapa pengguna dengan mengedit/etc/sudoers
(denganvisudo
), dan mengubah berapa lama mereka diingat dalam arti mengubah cara lama waktu yang diperlukan untuk sudo untuk time out (meskipun saya tidak yakin bagaimana melakukan ini di Ubuntu, yang dikonfigurasi sehingga pertanyaan apakahsudo
perlu atau tidak perlu kata sandi, dan berapa lama sampai perlu lagi, adalah khusus terminal) ).pkexec
dapat menjalankan GUI tanpa mengkonfigurasi: askubuntu.com/a/332847/89385