[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