Membaca pertanyaan dan jawaban ini:
membawakan saya satu lagi yang akan menciptakan masalah bagi pengguna baru dari perintah itu:
- Bagaimana cara mengkonfigurasi
pkexec
agar mudah digunakan?
Misalnya ketika melakukan hal berikut:
(Membuka file di terminal)
pkexec nano /etc/mysql/my.cnf
(Membuka file dalam GUI)
pkexec gedit /etc/mysql/my.cnf
Yang terakhir mendapatkan kesalahan berikut:
pkexec must be setuid root
Sekarang ini membawa saya pertanyaan-pertanyaan berikut:
Bagaimana cara mengkonfigurasi
pkexec
untuk menghindari hal ini? Mirip dengan bagaimanasudo
/gksu
berperilaku ketika melakukan hal yang sama (mereka hanya meminta kata sandi).Jika berlaku, bagaimana cara mengatakannya untuk tidak meminta kata sandi setelah pertama kali menerapkannya pada perintah (atau termasuk perintah pertama jika dapat dikonfigurasi)?
Di mana menyimpan file konfigurasi jika belum ada?
Apakah ada aplikasi GUI untuk mengonfigurasi
pkexec
penggunaan (Kit Kebijakan)?
sumber
Jawaban:
Bagaimana cara mengonfigurasi
pkexec
untuk menghindari kesalahan saat menjalankan aplikasi GUI?Saya menemukan dua cara yang mungkin:
Seperti yang Anda lihat, gunakan yang berikut:
tidak akan membuat Anda kesalahan. Dan ini normal karena
man pkexec
sangat jelas dalam hal ini:Sebagai hasilnya, Anda dapat membuat alias ( permanen ) (ini adalah cara paling sederhana):
Atau, (lagi) seperti yang
man pkexec
dikatakan:Anda dapat membuat file kebijakan baru dengan
/usr/share/polkit-1/actions
namacom.ubuntu.pkexec.gedit.policy
dengan kode xml berikut di dalam mana hal yang paling penting adalah untuk menetapkanorg.freedesktop.policykit.exec.allow_gui
nilai kosong:Bagaimana cara mengatakannya untuk tidak meminta kata sandi setelah pertama kali menerapkannya pada perintah?
Selama tiga tag pengaturan ini:
allow_any
,allow_inactive
danallow_active
dari file kebijakan, tersedia pilihan berikut:sudo
, otorisasi berlangsung beberapa menit.sudo
, otorisasi berlangsung beberapa menit.Sumber: Polkit - Struktur - Tindakan
Jadi, jika Anda menggunakan opsi auth_admin_keep (atau, sebagaimana berlaku, auth_self_keep ),
pkexec
tidak akan meminta kata sandi lagi untuk beberapa waktu (secara default waktu ini diatur ke 5 menit saat saya memeriksa). Kerugiannya di sini adalah bahwa hal ini hanya berlaku untuk satu - perintah / aplikasi yang sama dan berlaku untuk semua pengguna (kecuali jika ditolak di konfigurasi selanjutnya).Di mana menyimpan file konfigurasi jika belum ada?
File konfigurasi atau definisi polkit dapat dibagi menjadi dua jenis:
Tindakan didefinisikan dalam file XML .policy yang terletak di
/usr/share/polkit-1/actions
. Setiap tindakan memiliki seperangkat izin default yang melekat padanya (mis. Anda perlu mengidentifikasi sebagai administrator untuk menggunakan tindakan GParted). Default dapat ditolak tetapi mengedit file tindakan BUKAN dengan cara yang benar. Nama file kebijakan ini harus memiliki format ini:Aturan otorisasi didefinisikan dalam file JavaScript .rules. Mereka ditemukan di dua tempat: paket pihak ke-3 dapat digunakan
/usr/share/polkit-1/rules.d
(meskipun sedikit jika ada) dan/etc/polkit-1/rules.d
untuk konfigurasi lokal. File .rules menunjuk subset pengguna, merujuk ke satu (atau lebih) tindakan yang ditentukan dalam file tindakan dan menentukan dengan batasan apa tindakan ini dapat diambil oleh pengguna tersebut. Sebagai contoh, file aturan dapat mengesampingkan persyaratan default untuk semua pengguna untuk mengotentikasi sebagai admin saat menggunakan GParted, menentukan bahwa beberapa pengguna tertentu tidak perlu melakukannya. Atau tidak diizinkan menggunakan GParted sama sekali.Sumber: Polkit - Struktur
Apakah ada aplikasi GUI untuk mengkonfigurasi
pkexec
penggunaan?Dari yang saya tahu, sampai sekarang (18.01.2014) tidak ada yang seperti ini. Jika di masa depan saya akan menemukan sesuatu, saya tidak akan lupa untuk memperbarui jawaban ini juga.
sumber
doublecmd
dengan ROOT PRIVELEGES, karena saya perlu mengekspor lingkungan denganDISPLAY & XAUTHORITY
!! Hanya pertanyaan kecil: Apakah ada perbedaan dalam kebijakan penulisan atau hanya menjalankan program dengan perintahpkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd
sepanjang waktu?pkexec
menjadi tidak aman sepertigksudo
jika dijalankan melalui alias seperti itu? mungkin, alih-alih alias bisa jadi skrip dengan hak akses root, bisa lebih aman?auth_admin_keep
sepertinya tidak berhasil. Jika saya memulai sinaptik dari gui (yang setara denganpkexec synaptic
) ia meminta kata sandi untuk setiap waktu. Ada yang tahu kenapa?Selain jawaban Radu: Saya tidak akan menggunakan alias pkexec, tetapi gksudo .
Mengapa? Anda tidak perlu menulis ulang skrip Anda.
Saya menggunakan konfigurasi berikut:
cd /usr/local/bin
sudo gedit gksudo
(buat file baru bernama "gksudo"tulis konten berikut:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY $@
(jangan lupa
$@
di bagian akhir. Ini untuk mengarahkan ulang semua parameter)Simpan dan keluar
chmod 755 gksudo
Untuk alasan dokumentasi, saya akan menulis, apa yang saya coba dan tidak berhasil:
~/.bash_aliases
ln -s pkexec [...]
)sumber