it-swarm-id.com

Bagaimana saya bisa mengatur Pusat Perangkat Lunak untuk menginstal perangkat lunak untuk pengguna non-root?

Bagaimana saya bisa mengatur Pusat Perangkat Lunak untuk memungkinkan pengguna non-root untuk menginstal hal-hal dari repo Ubuntu tanpa harus mengetikkan kata sandi mereka?

Saya sepenuhnya menyadari implikasi keamanan, dan saya bersedia mengambil risiko. Fedora 12 dikirimkan dengan sesuatu seperti ini. (Dengan memodifikasi konfigurasi PolicyKit, saya percaya)

47
snostorm

Anda dapat mengubah izin PolicyKit untuk memungkinkan pengguna mengakses backend aptdaemon yang digunakan oleh Pusat Perangkat Lunak.

dpkg --listfiles aptdaemon menunjukkan bahwa /usr/share/polkit-1/actions/org.debian.apt.policy adalah file yang menentukan tindakan yang mungkin pada backend aptdaemon.

Melihat dalam file itu, tag < action id=""> menentukan tindakan yang mungkin. Anda mungkin ingin org.debian.apt.install-packages untuk memungkinkan pengguna menginstal paket baru dari arsip, dan org.debian.apt.update-cache untuk memungkinkan pengguna memperbarui daftar paket.

Lihat man pklocalauthority yang mendokumentasikan cara mengatur izin lokal pada tindakan PolicyKit. Menempatkan yang berikut ini ke /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla akan memungkinkan setiap pengguna yang masuk ke mesin lokal untuk menginstal paket setelah mengetik kata sandi mereka sendiri (bahkan ketika mereka tidak dalam grup admin) dan untuk memperbarui cache paket tanpa mengetikkan kata sandi apa pun.

[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes
36
RAOF

Saya tidak berpikir saat ini dimungkinkan untuk melakukannya melalui GUI, tetapi berikut ini harus bekerja, meskipun sedikit kotor. YMMV.

Tambahkan baris berikut ke/etc/sudoers (gunakan Sudo visudo untuk mengedit file):

%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get

Maka Anda hanya perlu membuat dan menambahkan pengguna spesifik ke grup packageinstallers:

$ Sudo addgroup packageinstallers
$ Sudo adduser jdoe packageinstallers

Sekarang jdoe dapat melakukan hal berikut:

$ Sudo apt-get install <some-package>

dan Anda dapat mengedit item menu desktop untuk Pusat Perangkat Lunak sehingga ia memanggil software-center dengan menambahkan perintah dengan gksudo.

PolicyKit dapat memungkinkan Anda untuk melakukannya tanpa Sudo, tapi itu di luar pemahaman saya saat ini.

10
lfaraone

Jika Anda hanya memerlukan izin umum untuk mengizinkan/melarang instalasi paket, buka PolicyKit.

Sayangnya PolicyKit tidak memiliki kontrol yang baik atas paket yang akan diinstal. Jika Anda ingin memberikan izin kepada pengguna Anda untuk hanya menginstal satu set aplikasi terbatas, Anda harus menggunakan Sudo dan menginstal sesuatu seperti perangkat softwar ...

Saya juga mencari sesuatu seperti itu, tetapi karena saya tidak menemukan apa-apa, saya memberi kode solusi mudah ini "softwarechannels", tersedia di GitHub

Ini adalah sistem yang sangat sederhana untuk memungkinkan pengguna umum (non-admin) menginstal paket dari katalog terbatas.

Cukup tentukan 'saluran' (grup paket) dalam file teks sederhana dan berikan izin kepada pengguna Anda untuk meluncurkan perangkat lunak.

Mereka hanya akan melihat paket di saluran yang cocok dengan grup unix mereka.

5
Alfonso E.M.

jawaban RAOF hanya berlaku untuk Ubuntu. Kubuntu menggunakan QAptWorker sebagai backend (diamati untuk Natty dan Oneiric). Untuk mengizinkan instalasi non-root, buat /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla berisi:

[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes

[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self

Saya ingin mengizinkan beberapa pengguna non-admin untuk menginstal perangkat lunak sementara tidak memberikan akses Sudo secara langsung. Itu dilakukan dengan memasukkan baris berikutnya di kedua grup konfigurasi:

Identity=unix-user:some-non-admin-user

Jika ada grup yang harus diberi izin, gunakan unix-group alih-alih unix-user.

5
Lekensteyn