Yazılım Merkezini kök olmayan kullanıcılar için yazılım yüklemeye nasıl ayarlayabilirim?


47

Yazılım Merkezini, root olmayan kullanıcıların, şifrelerini girmeden Ubuntu depolarından bir şeyler yüklemelerine izin verecek şekilde nasıl ayarlayabilirim?

Güvenlik sonuçlarının tam olarak farkındayım ve riske girmeye razıyım. Fedora 12 böyle bir şeyle sevk edildi. (PolicyKit yapılandırmasını değiştirerek, inanıyorum)


5
Fedora'nın, gökyüzünün üzerine düştükten sonra da desteklediğini not etmek önemlidir.
Nicholas Knight

Evet, bunu hatırladım. Masaüstü bilgisayarlarında yalnızca bir veya iki kullanıcılı olan gerçekten anlamlıdır.
snostorm

Software Center gibi bazı uygulama pazarı yazılımlarının sistem depolarının değiştirilmesine izin verdiğini unutmayın. Paketlerin self servis edilmesi riskli olmakla birlikte, güvenilmeyen paket kaynakları ekleyen kullanıcılar gerçekten tehlikelidir.
Alfonso EM

Yanıtlar:


36

Kullanıcıların Software Center'ın kullandığı aptdaemon arka ucuna erişmesine izin vermek için PolicyKit izinlerini değiştirebilirsiniz.

dpkg --listfiles aptdaemon/usr/share/polkit-1/actions/org.debian.apt.policyaptdaemon arka ucunda olası eylemleri belirten dosya olduğunu gösterir .

Bu dosyaya bakıldığında, < action id="">etiketler olası eylemleri belirtir. Muhtemelen org.debian.apt.install-packageskullanıcıların arşivden yeni paketler yüklemelerine ve org.debian.apt.update-cachekullanıcıların paket listelerini güncellemelerine izin vermek istersiniz .

man pklocalauthorityPolicyKit eylemlerinde yerel izinlerin nasıl ayarlanacağına bakın . Aşağıdakileri koymak, /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pklayerel makineye giriş yapan kullanıcıların kendi şifrelerini yazdıktan sonra (yönetici grubunda olmasalar bile) paketleri yüklemelerine ve şifre yazmadan paket önbelleğini güncellemelerine olanak sağlar.

[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

Kubuntu'nun politikaları (en azından Natty ve Oneiric'te) /usr/share/polkit-1/actions/org.kubuntu.qaptworker.policy
içeride

Kubuntu için talimatlar bulunabilir Cevabıma
Lekensteyn

Hayat kurtarıcı - şerefe dostum! Bunun Identity=*işe yaraması için askubuntu.com/a/123260 adresinden uyarlanmış olarak eklemek zorunda kaldım . Ayrıca, örneğin /var/log/auth.log(veya başka bir günlük dosyasında) daha fazla ilke kiti günlüğü çıkışı elde etmenin bir yolu var mı? Sadece authentication failsmesaj alıyorum , fakat başarısız olmasının nedeni de yok ...
ssc 10:15

10

Şu anda GUI aracılığıyla bunu yapmanın mümkün olduğunu sanmıyorum, ancak birazcık ağır olsa da aşağıdakiler işe yaramalı. YMMV.

/ Etc / sudoers dizinine şu satırı ekleyin ( sudo visudodosyayı düzenlemek için kullanın ):

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

O zaman packageinstallersgruba belirli kullanıcıları oluşturup eklemeniz yeterlidir :

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

Şimdi jdoeaşağıdakileri yapabilirsiniz:

$ sudo apt-get install <some-package>

Ayrıca, Yazılım Merkezi için masaüstü menü öğesini software-center, komutu hazırlama konusunda çağırması için düzenleyebilirsiniz gksudo.

PolicyKit bunu sudo olmadan yapmanıza izin verebilir, ancak bu noktada benim anlayışımın ötesinde.


Bu onların Synaptic veya yetenek veya sadece apt-get den yüklemelerine izin veriyor mu?
snostorm

Listeye "/ usr / bin / synaptic" ekleyecekseniz, yazardı. Aslında, muhtemelen listeye "/ usr / bin / software-center" ekleyebilirsiniz ve işe yarayabilirdi. Yine de test etmedim, işe yarayıp yaramadığını bana bildirin ve cevabı güncelleyeceğim.
lfaraone

Bunu deneyeceğim. :)
snostorm

Bu, kullanıcıların yazılım merkezini sudo ile çalıştırmayı veya .desktop dosyasını değiştirmenizi bilmesini gerektirir. İstediğinizi yapmak için PolicyKit'i nasıl ayarlayacağınıza dair cevabımı görün.
RAOF

Kabul, bu üstün bir çözüm olurdu.
lfaraone

5

RAOF'un cevabı sadece Ubuntu için geçerlidir. Kubuntu, QAptWorker'ı arka uç olarak kullanıyor (Natty ve Oneiric için gözlemlendi). Kök olmayan yüklemelere izin vermek için /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pklaşunları içerenleri oluşturun :

[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

Bazı yönetici olmayan kullanıcıların doğrudan sudo erişimi sağlamadığında yazılım yüklemesine izin vermek istedim. Bu, her iki yapılandırma grubuna sonraki satırları ekleyerek gerçekleştirildi:

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

İzin verilmesi gereken bir grup varsa, unix-groupyerine kullanın unix-user.


Kuralları tekrar uygulamak için yeniden başlattım. (bir yeniden giriş muhtemelen işe yarayacaktı)
Lekensteyn

Bunu nasıl yapacaksın? Sonra bile sudo -ibile erişimi yoktur /etc/polkit-1/localauthority(Ubuntu 17.10): "süreç dizinine / etc / polkit-1 / localauthority girişimi olmayacak"
JHBonarius

5

Paket kurulumuna izin vermek / vermemek için yalnızca genel bir izne ihtiyacınız varsa PolicyKit’e gidin.

Ne yazık ki PolicyKit'in kurulacak paket üzerinde hassas bir kontrolü yok. Kullanıcılarınıza yalnızca sınırlı bir uygulama grubunu kurma izni vermek istiyorsanız, sudoyazılımlar gibi bir şey kullanmalı ve yüklemelisiniz ...

Ben de böyle bir şey aradım ama hiçbir şey bulamadığım için GitHub'da bulunan bu kolay çözümü "softwarechannels" olarak kodladım.

Yaygın (yönetici olmayan) kullanıcıların sınırlı kataloglardan paket yüklemelerine izin vermek çok basit bir sistemdir.

Basitçe bir metin dosyasında 'kanalları' (paket gruplarını) tanımlayın ve kullanıcılarınıza yazılım programları başlatmak için izin verin.

Paketleri yalnızca unix gruplarıyla eşleşen kanallarda görecekler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.