Comment configurer le Software Center pour installer des logiciels pour les utilisateurs non-root?

45

Comment puis-je configurer le Software Center pour autoriser les utilisateurs non root à installer des éléments depuis les dépôts Ubuntu sans avoir à saisir leur mot de passe?

Je suis pleinement conscient des implications en matière de sécurité et je suis prêt à prendre le risque. Fedora 12 livré avec quelque chose comme ça. (En modifiant la configuration de PolicyKit, je crois)

    
posée snostorm 28.07.2010 - 21:21
la source

4 réponses

36

Vous pouvez modifier les autorisations PolicyKit pour permettre aux utilisateurs d’accéder au backend aptdaemon utilisé par Software Center.

dpkg --listfiles aptdaemon indique que /usr/share/polkit-1/actions/org.debian.apt.policy est le fichier spécifiant les actions possibles sur le backend aptdaemon.

En regardant dans ce fichier, les balises < action id=""> spécifient les actions possibles. Vous souhaiterez probablement que org.debian.apt.install-packages autorise les utilisateurs à installer de nouveaux packages à partir de l'archive et org.debian.apt.update-cache à autoriser les utilisateurs à mettre à jour les listes de packages.

Voir man pklocalauthority qui explique comment définir des autorisations locales sur les actions PolicyKit. Inscrire ce qui suit dans /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla permettra à tout utilisateur connecté à la machine locale d'installer des packages après avoir tapé son propre mot de passe (même s'ils ne sont pas dans le groupe admin) et de mettre à jour le cache sans mot de passe. / p>

[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
    
réponse donnée RAOF 29.07.2010 - 04:37
la source
10

Je ne pense pas qu'il soit actuellement possible de le faire via l'interface graphique, mais les éléments suivants devraient fonctionner, même si c'est un peu compliqué. YMMV.

Ajoutez la ligne suivante à / etc / sudoers (utilisez sudo visudo pour modifier le fichier):

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

Ensuite, il vous suffit de créer et d’ajouter les utilisateurs spécifiques au groupe packageinstallers :

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

Maintenant, jdoe peut faire ce qui suit:

$ sudo apt-get install <some-package>

et vous pouvez modifier l'élément de menu du bureau pour le centre logiciel afin qu'il appelle software-center en préfixant la commande avec gksudo .

PolicyKit peut vous permettre de le faire sans sudo, mais cela est au-delà de ma compréhension à ce stade.

    
réponse donnée lfaraone 28.07.2010 - 21:45
la source
5

La réponse de RAOF s'applique uniquement à Ubuntu. Kubuntu utilise QAptWorker comme backend (observé pour Natty et Oneiric). Pour autoriser les installations non root, créez /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla contenant:

[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

Je voulais autoriser certains utilisateurs non-administrateurs à installer des logiciels sans accorder directement l'accès à sudo. Cela a été accompli en insérant les lignes suivantes dans les deux groupes de configuration:

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

S'il y a un groupe qui doit obtenir une autorisation, utilisez unix-group au lieu de unix-user .

    
réponse donnée Lekensteyn 13.11.2011 - 14:48
la source
5

Si vous n’avez besoin que d’une autorisation générique pour autoriser / interdire l’installation des paquets, optez pour PolicyKit.

Malheureusement, PolicyKit n’a pas de contrôle précis sur le paquet à installer. Si vous souhaitez autoriser vos utilisateurs à installer uniquement un ensemble restreint d'applications, vous devez utiliser sudo et installer quelque chose comme softwarechannels ...

J'ai aussi cherché quelque chose comme ça, mais comme je n'ai rien trouvé, j'ai codé cette solution simple "softwarechannels", disponible ici sur GitHub

C'est un système très simple pour permettre aux utilisateurs communs (non-admin) d'installer des packages à partir de catalogues restreints.

Il suffit de définir les «canaux» (groupes de packages) dans un simple fichier texte et d'autoriser vos utilisateurs à lancer des softwarechannels.

Ils ne verront que les paquets dans les canaux correspondant à leurs groupes Unix.

    
réponse donnée Alfonso E.M. 20.02.2013 - 11:44
la source

Lire d'autres questions sur les étiquettes