Se faire passer pour un autre

Publié le par Peck

Maintenant sur http://linux-attitude.fr/post/Se-faire-passer-pour-un-autre

Niveau
:
Résumé: sudo -l ; sudo -s ; NOPASSWD:

Sudo est un outil utilisé par défaut dans certaines distributions pour donner les droits d'administration système à certains utilisateurs. Sudo a l'avantage sur su de ne pas nécessiter la mémorisation d'un mot de passe supplémentaire. De plus il permet de retirer des droits à une personne. Allez en faire autant avec su pour démémoriser un mot de passe (anesthésie, scalpel, scie, petite cuillère, travaux de couture... ce n'est pas de tout repos).

Le principe de sudo est simple, toute commande tapée derrière sudo est exécutée en tant qu'utilisateur root (par défaut) si le droit vous en a été donné. Ceci est vérifié après vous avoir demandé votre mot de passe pour une vérification complémentaire de votre identité. Celui-ci ne vous sera demandé qu'une fois de temps en temps. Petit inconvénient, les divers sudo ne partagent pas le même cache (sudo, gksudo, kdesudo vous demanderont tous un mot de passe si vous les lancez successivement).

Sudo signale automatiquement à l'administrateur lorsque quelqu'un tente de l'utiliser sans disposer de droit pour le faire. Pour ne pas donner l'impression de chercher à abuser des règles, il est possible de connaître les commandes qui vous sont autorisées avec l'option -l :
$ sudo -l
Vous liste vos droits.

Sudo fonctionne commande par commande, c'est bien utile pour un besoin temporaire de devenir root :
$ ./configure
$ make
$ sudo make install

ou pour lancer une application graphique :
$ sudo wireshark

Cela peut devenir lourd si vous en avez besoin pour plusieurs commandes d'affilée. Il existe pour cela l'option -s qui fait en sorte que toutes les commandes suivantes soient lancées avec sudo (dans un sous shell) :
$ sudo -s




Enfin et surtout, pour les administrateurs soucieux de ne pas donner trop de droits à tous les utilisateurs qui passent, il est possible de définir un certains nombre de limitations sur les commandes utilisables avec sudo. Tous ces droits se modifient avec la commande visudo (qui lance un editeur vi).

Le man 5 sudoers décrit la syntaxe de ce fichier. Celui-ci étant particulièrement peu lisible, voici un résumé :
# chaque ligne ressemble à la suivante
user host = (runas) command

user : utilisateur a qui on donne des droits
host : machine sur laquelle ce sudo est valable
runas : utilisateur en tant que qui sera exécuté la commande
commande : la commande autorisée

Chacune de ces valeur peut être remplacée par ALL pour préciser que tout est autorisé. Exemple courant donnant tous les droits à un simple utilisateur toto:
toto ALL=(ALL) ALL

La partie command peut être préfixée par NOPASSWD: ce qui permet à l'utilisateur de ne pas avoir à préciser de mot de passe lorsqu'il utilise sudo. Sachant que cela peut poser des problèmes de sécurité, il convient de l'utiliser avec parcimonie. C'est tout de même particulièrement utile pour des scripts qui besoin d'obtenir des droits root temporairement.

Il est aussi possible, pour des utilisateurs dont on sait à l'avance quelles commandes ils ont besoin, de limiter sudo à une commande précise :
# Exemple de commande restreinte pour script
backup ALL=(toto) NOPASSWD: /bin/tar cfz /srv/backups/toto.tgz /home/toto
Attention, si vous ne passez pas de paramètres à la commande, l'utilisateur peut mette ce qu'il veut. Précisez "" pour interdire tout paramètre.

Publié dans admin

Commenter cet article