web-dev-qa-db-fra.com

Comment configurer le Centre de logiciel pour installer le logiciel pour les utilisateurs non-root?

Comment puis-je configurer le Centre de logiciel pour permettre aux utilisateurs non root d'installer des éléments à partir du référentiel Ubuntu sans avoir à saisir leur mot de passe?

Je suis pleinement conscient des implications pour la 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)

47
snostorm

Vous pouvez modifier les autorisations PolicyKit pour autoriser les utilisateurs à accéder au backend aptdaemon utilisé par le Centre logiciel.

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 d'aptdaemon.

En recherchant dans ce fichier, les balises < action id=""> spécifient les actions possibles. Vous voudriez probablement que org.debian.apt.install-packages permette aux utilisateurs d'installer de nouveaux packages à partir de l'archive et org.debian.apt.update-cache pour permettre aux utilisateurs de mettre à jour les listes de packages.

Voir man pklocalauthority qui explique comment définir des autorisations locales sur les actions PolicyKit. Le fait d'inscrire le code suivant 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 saisi son propre mot de passe (même s'ils ne font pas partie du groupe admin) et de mettre à jour le cache de package sans saisir aucun mot de passe.

[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

Je ne pense pas qu’il soit actuellement possible de le faire via l’interface graphique, mais ce qui suit devrait fonctionner, bien qu’il faille un peu kludgy. YMMV.

Ajoutez la ligne suivante à/etc/sudoers (utilisez Sudo visudo pour éditer 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

jdoe peut maintenant effectuer les opérations suivantes:

$ Sudo apt-get install <some-package>

et vous pouvez éditer l’élément de menu du bureau du Centre logiciel pour qu’il appelle software-center en ajoutant la commande __ avant à la commande avec gksudo.

PolicyKit peut vous permettre de le faire sans Sudo, mais je ne le comprends pas pour le moment.

10
lfaraone

Si vous avez seulement besoin d'une autorisation générique pour autoriser/interdire l'installation de paquet, choisissez PolicyKit.

Malheureusement, PolicyKit n’exerce aucun contrôle précis sur le paquet à installer. Si vous souhaitez autoriser vos utilisateurs à installer uniquement un ensemble restreint d'applications, vous devez utiliser Sudoet installer quelque chose comme des canaux virtuels ...

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

C’est un système très simple qui permet aux utilisateurs communs (non administrateurs) 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 canaux logiciels.

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

5
Alfonso E.M.

La réponse de RAOF ne s'applique qu'à Ubuntu. Kubuntu utilise QAptWorker comme back-end (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 permettre à des utilisateurs non-administrateurs d'installer des logiciels sans autoriser 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

Si un groupe doit recevoir une autorisation, utilisez unix-group au lieu de unix-user.

5
Lekensteyn