Administrer avec Sudo

Un article de openSUSE.

(Redirigé depuis Administer with Sudo)
Cet article est à relire !

Cette page demande à être relue pour correction. Si vous pouvez y participer, merci de le faire en accord avec le Guide stylistique openSUSE.
Si vous cherchez quelque chose à faire, regardez les autres Pages à relire.

Au lieu d'utiliser le compte root, administrer un système en utilisant Sudo est plus sûr et plus pratique.

  • Une commande tapée par erreur le sera avec les droits de votre compte et non avec les droits root.
  • Toutes les actions super-utilisateur seront inscrites dans le journal /var/log/messages
  • Vous pouvez paramétrer visudo de manière à ce que certaines commandes nécessitant les droits root puissent exécuter par un usager ou par tous les usagers membres d'un groupe sans même à avoir à saisir le mot de passe root.

Sudo est installé par défault. Pour autoriser l'accès à Sudo pour un usager, suivez les instructions ci-dessous :

sudo /usr/sbin/visudo

visudo fonctionne comme un éditeur vi traditionnel. Il édite automatiquement le fichier de configuration sudoers.

N'importe quel usager dans le groupe par défaut 'users' peut exécuter Sudo s'il connaît le mot de passe root. On pourra changer ce comportement plus tard. Saisissez le mot de passe root. Vous vous retrouvez alors dans le fichier de configuration de Sudo. Consultez le fichier pour en comprendre la structure. Des examples sont fournis à la fin du fichier.

La structure générale pour donner les droits est :

usager            serveurs  = (compte)  commandes

Soit : usager peut exécuter commandes en tante que compte sur les systèmes serveurs. A noter qu'il est possible d'utiliser le mot clé ALL pour chacune de ces variables. commandes doit lister toutes les commandes autorisées séparés par des virgules. Pour lever toute ambiguïté, les commandes doivent être écrites avec le chemin complet.

Ainsi l'entrée suivante signifie, les usagers du groupe wheel (en raison du % sinon ce serait l'usager wheel) peut exécuter n'importe quelle commande sur n'importe quel serveur avec les droits de n'importe quel compte.

%wheel        ALL=(ALL)       ALL

Celle-ci autorise l'usager fred a exécuter les commandes mount et unmount

fred        ALL=(ALL)       /bin/mount, /bin/unmount
Lorsqu'on utilise sudo, on veut souvent utiliser le compte root. Si ce n'est pas le cas, utilisez l'option -u. Ex : sudo -u oracle dosql

Une autre fonctionnalité intéressante et essentielle est donné par l'ajout du mot clé :NOPASSWD après le signe égal. Il permet d'exécuter la commande sans même avoir à connaître le mot de passe !

Conseils

  • Préférer l'attribution des droits à des groupes plutôt qu'à des usagers.
  • Profitez de la fonctionnalité :NOPASSWD !
  • Pourquoi ne pas avoir un groupe "simili-root" qui vous autorise toutes les commandes root. Vous aurez tous les droits de root sans être dans le contexte de root.
  • Consulter la page de manuel sudoers pour des informations sur le format du fichier de configuration.


Liens