[Admin-ml] Un script shell avec sudo...
Piel Jayce
jayce at mosx.org
Mer 21 Nov 10:17:36 CET 2007
Le 21 nov. 2007 à 09:34, Proniewski Patrick a écrit :
> On 21 nov. 07, at 07:52, Piel Jayce wrote:
>
>> Imagine un peu un utilisateur qui apprend à se servir du sudoers,
>> il sait pas trop comment le configurer, et ne sait pas par exemple
>> que l'on peut limiter les droits d'exécution d'une commande à un
>> groupe ou une personne.
>
> si il ne sait pas ça, c'est qu'il n'apprend pas à se servir de
> sudo. Le problème est entre la chaise et le clavier. sudo
> n'introduit en l'occurence aucun trou de sécurité, dans la mesure
> où, de toute manière, l'utilisateur est déjà root de sa machine.
> Qu'il fasse des bêtises avec sudo, avec rm, ou avec autre chose, le
> problème est le même : l'éducation de l'administrateur.
Le problème, avec sudo, c'est que le problème ne se limitera pas à
l'administrateur. Ok, l'administrateur peut être root de sa machine.
Mais si il donne accès à cp ou mv ou rm avec les droits root sans mot
de passe à tout le monde, le problème ne se limite plus seulement à
lui, mais à tous les autres utilisateurs de la machine (et aux
autres... :-))...
> Ce sont des scripts qui remplissent des bases RRDTool avec des
> vitals du système. Les fichiers associés (scripts, bases rrd, graph
> générés, ...) appartiennent tous à l'utilisateur "patpro", et je ne
> souhaite pas que les scripts soient lancés en root (car cela ne
> sert à rien, et donc c'est plus sûr qu'ils ne soient pas lancés en
> root).
> Seulement, le script temperature.sh utilise le binaire `healthd`
> qui ne peut être lancé que par root, à cause d'une sombre histoire
> d'accès à un device.
>
> Dans mon sudoer j'ai ajouté :
>
> patpro ALL=(ALL) PASSWD: ALL, !/usr/local/sbin/healthd, NOPASSWD: /
> usr/local/sbin/healthd
>
> Ce qui signifie que le user "patpro" peut faire sudo pour toutes
> les commandes, que sudo lui demandera son mot de passe pour toutes
> les commandes, SAUF pour /usr/local/sbin/healthd. Pour ce dernier,
> pas de mot de passe à saisir.
>
> Mon script temperature.sh contient donc la ligne :
>
> TEMPERATURE=`sudo /usr/local/sbin/healthd -c 1 | awk 'blahblah'`
>
> Ce qui permet à ma crontab de lancer en root uniquement les
> commandes qui en ont besoin, tout en laissant tout le reste tourner
> avec les privilèges de "patpro".
Oui, parce que tu as bien géré ton sudoers. Un sudoers bien géré,
c'est *bien*... Un sudoers mal géré, c'est *mal* et dangeureux.
--
Jayce Piel
MosX.org
la renaissance.....
Plus d'informations sur la liste de diffusion Admin-ml