Come posso impostare il Software Center per installare il software per utenti non root?

45

Come posso impostare il Software Center per consentire agli utenti non root di installare roba dai repository di Ubuntu senza dover digitare la loro password?

Sono pienamente consapevole delle implicazioni per la sicurezza e sono disposto a correre il rischio. Fedora 12 è stato spedito con qualcosa di simile. (Modificando la configurazione di PolicyKit, credo)

    
posta snostorm 28.07.2010 - 21:21

4 risposte

36

È possibile modificare le autorizzazioni PolicyKit per consentire agli utenti di accedere al backend aptdaemon utilizzato da Software Center.

dpkg --listfiles aptdaemon mostra che /usr/share/polkit-1/actions/org.debian.apt.policy è il file che specifica le azioni possibili sul backend aptdaemon.

Esaminando quel file, i tag < action id=""> specificano le possibili azioni. Probabilmente vorrai org.debian.apt.install-packages per consentire agli utenti di installare nuovi pacchetti dall'archivio e org.debian.apt.update-cache per consentire agli utenti di aggiornare gli elenchi di pacchetti.

Vedere man pklocalauthority che documenta come impostare le autorizzazioni locali sulle azioni di PolicyKit. Mettendo quanto segue in /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla consentirà a qualsiasi utente connesso al computer locale di installare pacchetti dopo aver digitato la propria password (anche quando non sono nel gruppo admin) e di aggiornare la cache del pacchetto senza digitare alcuna password.

[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
    
risposta data RAOF 29.07.2010 - 04:37
10

Non penso che sia attualmente possibile farlo tramite la GUI, ma quanto segue dovrebbe funzionare, anche se un po 'scialbo. YMMV.

Aggiungi la seguente riga a / etc / sudoers (usa sudo visudo per modificare il file):

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

Quindi devi solo creare e aggiungere gli utenti specifici al gruppo packageinstallers :

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

Ora jdoe può fare quanto segue:

$ sudo apt-get install <some-package>

e puoi modificare la voce di menu del desktop per il Software Center in modo che invochi software-center che precede il comando con gksudo .

PolicyKit potrebbe permetterti di farlo senza sudo, ma a questo punto è fuori dalla mia comprensione.

    
risposta data lfaraone 28.07.2010 - 21:45
5

La risposta di RAOF si applica solo a Ubuntu. Kubuntu usa QAptWorker come backend (osservato per Natty e Oneiric). Per consentire installazioni non root, crea /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla contenente:

[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

Volevo consentire ad alcuni utenti non amministratori di installare software senza concedere l'accesso sudo direttamente. Ciò è stato ottenuto inserendo le righe successive in entrambi i gruppi di configurazione:

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

Se esiste un gruppo a cui deve essere concessa l'autorizzazione, utilizza unix-group anziché unix-user .

    
risposta data Lekensteyn 13.11.2011 - 14:48
5

Se hai solo bisogno di un'autorizzazione generica per consentire / impedire l'installazione del pacchetto, vai su PolicyKit.

Purtroppo PolicyKit non ha un controllo preciso sul pacchetto da installare. Se vuoi dare ai tuoi utenti il ​​permesso di installare solo un set limitato di applicazioni, dovresti usare sudo e installare qualcosa come softwarechannels ...

Ho anche cercato qualcosa di simile, ma poiché non ho trovato nulla, ho codificato questa facile soluzione "softwarechannels", disponibile qui su GitHub

È un sistema molto semplice per consentire agli utenti comuni (non amministratori) di installare pacchetti da cataloghi limitati.

Definisci semplicemente "canali" (gruppi di pacchetti) in un semplice file di testo e dai ai tuoi utenti le autorizzazioni per avviare i softwarechannels.

Vedranno solo i pacchetti nei canali che corrispondono ai loro gruppi unix.

    
risposta data Alfonso E.M. 20.02.2013 - 11:44

Leggi altre domande sui tag