Vous pouvez spécifier les commandes autorisées avec sudo, vous n'êtes pas obligé d'autoriser un accès illimité, par exemple
username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude
Cela permettrait au nom d'utilisateur d'exécuter sudo apt-get
et sudo aptitude
sans mot de passe mais n'autoriserait aucune autre commande.
Vous pouvez également utiliser packagekit combiné avec PolicyKit pour un niveau de contrôle plus fin que sudo.
Autoriser les utilisateurs à installer/supprimer des packages peut présenter un risque. Ils peuvent assez facilement rendre un système non fonctionnel simplement en désinstallant les logiciels nécessaires tels que libc6, dpkg, rpm, etc. L'installation de logiciels arbitraires à partir des archives définies peut permettre aux attaquants d'installer des logiciels obsolètes ou exploitables et d'obtenir un accès root. La principale question à mon avis est de savoir dans quelle mesure faites-vous confiance à vos employés ?
Bien sûr, votre équipe d'administration pourrait également commencer à utiliser un système de gestion de configuration comme marionnette, chef ou se pencher sur la sortie dans l'espace pour gérer votre système. Cela leur permettrait de configurer et de gérer le système à partir d'un système central.
aptdcon
À partir des pages de manuel :
aptdcon
:permet d'effectuer des tâches de gestion de paquets, par ex. installer ou supprimer des logiciels à l'aide d'aptdaemon. Il n'est pas nécessaire d'être root pour exécuter ce programme.
username ALL = NOPASSWD : /usr/bin/yum, /bin/rpm