Comment ajouter un utilisateur au fichier Sudoers sous Mac OS X
Les utilisateurs avancés peuvent avoir besoin d'ajouter un compte d'utilisateur au fichier sudoers, qui permet à cet utilisateur d'exécuter certaines commandes avec les privilèges de root. Pour simplifier grandement ce que cela signifie, ces nouveaux comptes d'utilisateurs privilégiés pourront alors exécuter des commandes sans obtenir d'erreurs de refus de permission ou sans avoir à préfixer une commande de terminal avec sudo. Cela peut être utile (ou nécessaire) pour certaines situations complexes, mais cela pose un risque de sécurité pour d'autres, et ce n'est donc pas quelque chose qui doit être changé par hasard. En général, la plupart des utilisateurs préfèrent utiliser un compte d'administrateur, utiliser sudo par commande, ou autoriser l'utilisateur root. Néanmoins, la modification directe de sudoers présente de nombreuses situations d'utilisation pour les personnes avancées ayant une connaissance approfondie de la ligne de commande, et c'est pour ces situations plus complexes que nous nous concentrerons sur l'ajustement du fichier sudoers comme décrit ici.
Le fichier sudoers se trouve dans /etc/sudoers mais, contrairement à /etc/hosts et à de nombreux autres fichiers de configuration du système, vous ne voulez pas pointer un éditeur de texte général vers le fichier pour le modifier. Vous devez plutôt utiliser une commande spécifique appelée "visudo", qui confirme la syntaxe correcte avant d'enregistrer le document.
Important : L'ajustement des sudoers n'est pas destiné à la plupart des utilisateurs d'OS X. Seuls les utilisateurs avancés qui ont une raison impérieuse de le faire devraient modifier le fichier sudoers. Si vous ne savez pas ce que vous faites et pourquoi vous le faites, ne modifiez pas le fichier sudoers, et n'ajoutez aucun utilisateur au fichier sudoers. Cela pourrait poser un risque de sécurité ou vous pourriez casser quelque chose.
Ajouter un utilisateur aux Sudoers sous Mac OS X
L'ajout d'utilisateurs dans les sudoers nécessite l'utilisation de vi, ce qui peut être assez déroutant si vous n'y êtes pas habitué. Pour ceux qui ne sont pas habitués, nous allons décrire les séquences de commandes clés exactes pour éditer, insérer et enregistrer le fichier dans vi, en suivant attentivement les instructions.
- Lancez le terminal et tapez la commande suivante :
- Utilisez les touches fléchées pour descendre jusqu'à la section "#User privilege specification", elle devrait ressembler à ceci :
- Placez le curseur sur la prochaine ligne vide sous l'entrée %admin et appuyez sur la touche "A" pour insérer du texte, puis tapez ce qui suit sur une nouvelle ligne, en remplaçant "nom d'utilisateur" par le nom court du compte auquel vous souhaitez accorder le privilège (appuyez sur la touche tabulation entre nom d'utilisateur et ALL) :
- Appuyez maintenant sur la touche "ESC" (escape) pour arrêter l'édition du fichier
- Appuyez sur la touche : (deux-points) puis tapez "wq" suivi de la touche Return pour enregistrer les changements et sortir de vi
sudo visudo
# Spécification des privilèges de l'utilisateur
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
nom d'utilisateur ALL=(ALL) ALL
Voici à quoi cela devrait ressembler, l'exemple de capture d'écran montre le nom d'utilisateur "iphonologie" ajouté :
Vous devriez être prêt à partir, vous pouvez consulter le fichier sudoers pour vous assurer que le fichier a été modifié :
chat /etc/sudoers
Utilisez le chat avec le grep pour trouver rapidement le nom d'utilisateur si vous ne voulez pas parcourir tout le fichier :
chat /etc/sudoers | grep nom d'utilisateur
Maintenant que le "nom d'utilisateur" a été ajouté au fichier sudoers, vous devriez être prêt à partir.
Résolution d'une erreur "/etc/sudoers busy, try again later"
Si vous essayez de modifier les sudoers et d'obtenir un 'visudo' : /etc/sudoers busy, try again later", cela signifie généralement que le fichier est déjà ouvert, soit par un autre utilisateur, soit par accident, soit par une fermeture incorrecte de visudo. Si vous êtes sur une machine multi-utilisateurs, assurez-vous de vérifier avec les autres utilisateurs avant de faire quoi que ce soit d'autre, mais généralement cela ne devrait pas arriver souvent sur une machine à un seul utilisateur. Il est important de faire la différence entre les deux car si vous bousillez le fichier sudoers, vous risquez de vous retrouver dans un monde de frustration, de problèmes et de restauration éventuelle du système d'exploitation (ou du fichier sudoers) à partir de sauvegardes, dont la résolution dépasse le cadre de cet article.
Sur les Macs mono-utilisateur, cette erreur "sudoers busy" peut se produire après avoir quitté l'application Terminal sans quitter vi, ou si le Terminal ou OS X a planté, ou si le fichier est actuellement ouvert dans une autre session. La solution pour ces derniers cas de machines à usage unique décrits est assez simple, et vous pouvez résoudre l'erreur en supprimant le fichier temporaire sudoers qui sert de verrou :
sudo rm /etc/sudoers.tmp
Vous ne voudrez le faire que si vous êtes certain qu'un autre utilisateur (ou vous-même) ne modifie pas activement le fichier, que ce soit localement ou à distance. Comme le réglage de sudoers est assez avancé en général, nous supposons que vous savez ce que vous faites ici, mais si vous ne pouvez pas trouver ce que ou pourquoi sudoers est ouvert, vous pouvez essayer d'utiliser dtrace ou opensnoop pour surveiller l'utilisation du fichier.