it-swarm-eu.dev

Quelle est la syntaxe sudoers appropriée pour ajouter un utilisateur?

Selon les commentaires dans /etc/sudoers (Fedora 13):

## Syntax:
##
##    user  MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.

Mes deux questions connexes:

  1. Que signifie la ALL=(ALL) ALL dans la ligne suivante:

    root  ALL=(ALL)   ALL
    
  2. J'ai testé ces deux lignes mais je ne peux pas comprendre comment elles sont fonctionnellement différentes:

    superadm    ALL=(ALL)    ALL
    superadm    ALL=ALL
    

J'ai lu le manuel mais la spécification de la syntaxe est difficile à suivre. J'ai déduit que la partie (ALL) ALL Est la commande et les spécifications de balise, mais je n'arrive toujours pas à comprendre.

51
Belmin Fernandez

Remarque: Je réponds 1. , puisque Ignacio déjà répond 2. .

Dans l'entrée Sudo suivante:

superadm  ALL=(ALL)   ALL

il y a quatre domaines:

  • Le premier spécifie un utilisateur qui se verra accorder des privilèges pour certaines commandes.
  • Le second est rarement utilisé. Il s'agit d'une liste de noms d'hôtes sur lesquels cette entrée Sudo sera effective. Sur les configurations standard, un seul hôte est pertinent (localhost), donc ce champ est généralement laissé comme ALL.
  • Le champ quatrième est la liste des commandes que superadm pourra exécuter avec des privilèges élevés. ALL signifie toutes les commandes. Sinon, utilisez une liste de commandes séparées par des virgules.
  • Le troisième champ (celui écrit (…) qui est facultatif) spécifie quels utilisateurs (et groupes) l'utilisateur superadm pourra exécuter les commandes suivantes en tant que. ALL signifie qu'ils peuvent choisir n'importe quoi (sans restriction). Si ce champ est omis, cela signifie la même chose que (root).

Exemple:

alan   ALL = (root, bin : operator, system) /bin/ls, /bin/kill

Ici, alan est autorisé à exécuter les deux commandes /bin/ls et /bin/kill as root (ou bin), éventuellement avec des privilèges supplémentaires de groupes operator ou system.

Ainsi, alan peut choisir d'exécuter ls en tant qu'utilisateur bin et avec les privilèges de groupe de operator comme ceci:

Sudo -u bin -g operator /bin/ls /whatever/directory

Si -u est omis, c'est la même chose que -u root. Si -g est omis, aucun privilège de groupe supplémentaire n'est accordé.

94
Stéphane Gimenez

Depuis la page de manuel sudoers(5), DESCRIPTION section, Runas_Spec sous-section:

Le premier Runas_List indique quels utilisateurs la commande peut être exécutée via Sudo ’s -u option.

...

Si aucun Runas_Spec n'est spécifié, la commande peut être exécutée en tant que root et aucun groupe ne peut être spécifié.

Il n'y a donc pas de différence fonctionnelle lorsque vous essayez d'exécuter des commandes en tant que root, c'est-à-dire lorsque vous n'utilisez pas -u avec Sudo. La différence est importante lorsque vous essayez d'exécuter des commandes en tant que d'autres utilisateurs; les seconds empêcheront cela, mais les premiers le permettront.

9