Utiliser FreeIPA pour sudo centralisé - comment spécifier TOUTES les commandes?

9

J'ai du mal à m'enrouler autour du modèle de FreeIPA. Le manuel FreeIPA déclare:

FreeIPA ajoute une mesure de contrôle supplémentaire avec les groupes de commandes sudo, qui permettent de définir un groupe de commandes, puis de les appliquer à la configuration sudo comme un seul.

Mais leurs exemples parlent essentiellement de la création d'un groupe de commandes sudo et de l'ajout de commandes sudo particulières comme vimet lessà un groupe de commandes sudo "files".

par exemple à partir de la ligne de commande:

ipa sudocmdgroup-add --desc 'File editing commands' files

ipa sudocmd-add --desc 'For editing files' '/usr/bin/vim'

ipa sudocmdgroup-add-member --sudocmds '/usr/bin/vim' files

Mais comment spécifiez ALL-vous comme vous le feriez dans / etc / sudoers? Peut-il être joker (par exemple *)?

HTTP500
la source

Réponses:

9

Vous n'avez pas besoin de créer des groupes de commandes si vous voulez qu'un groupe d'utilisateurs puisse exécuter n'importe quelle commande avec sudo. Vous avez juste besoin d'une règle sudo qui autorise toutes les commandes, et une devrait avoir été créée pour vous par défaut lorsque vous avez installé FreeIPA.

# ipa sudorule-find All
-------------------
1 Sudo Rule matched
-------------------
  Rule name: All
  Enabled: TRUE
  Host category: all
  Command category: all
  RunAs User category: all
  User Groups: admins
----------------------------
Number of entries returned 1
----------------------------

(Si une telle règle n'existe pas, créez-la.)

ipa sudorule-add --cmdcat=all All

Ajoutez simplement les utilisateurs ou les groupes à cette règle sudo que vous souhaitez pouvoir utiliser sudoavec n'importe quelle commande.

ipa sudorule-add-user --groups=admins All

Vous pouvez également le faire à partir de l'interface utilisateur Web si vous préférez.

Michael Hampton
la source
La règle n'existait pas par défaut et il a fallu un peu de travail pour obtenir une règle qui corresponde à la vôtre, c'est-à-dire "% admins ALL = (ALL) ALL" mais je pense que je suis sur le chemin de l'illumination maintenant. Très apprécié, merci!
HTTP500
C'est l'une de ces tâches qui était évidemment beaucoup plus facile dans l'interface utilisateur Web que la ligne de commande. Il m'a fallu un certain temps pour aller aussi loin dans l'interface CLI.
Michael Hampton
D'accord, j'ai terminé la règle dans l'interface utilisateur Web.
HTTP500
Si vous voulez que la règle soit efficace sur tous les hôtes, j'ai remarqué que sans spécifier --hostcat=alllors de la création de la règle, sudo n'est pas autorisé (l'ajout de cette option à une règle existante est possible en émettant sudorule-mod --hostcat=all).
nivs
2
@ HTTP500 Si vous deviez faire des choses qui ne figurent pas dans votre OP ou la réponse acceptée, veuillez fournir les étapes / détails pour les autres, c'est-à-dire que la règle n'existait pas par défaut et qu'il a fallu un peu de travail pour obtenir une règle qui correspondait à la vôtre ... Quel peu de travail était nécessaire? Comment avez-vous atteint le résultat souhaité?
0xSheepdog
0

Lorsque vous souhaitez ajouter ALLà une règle, vous pouvez utiliser l'option de catégorie avec valeur all. Pour les commandes qui seraient --cmdcat=all, pour les hôtes - --hostcat=all, pour les utilisateurs - --usercat=allet quelques autres ci-dessous.

Toutes ces options sont visibles dans ipa sudorule-add --help:

$ ipa sudorule-add --help
Usage: ipa [global-options] sudorule-add SUDORULE-NAME [options]

Create new Sudo Rule.
Options:
  -h, --help            show this help message and exit
  --desc=STR            Description
  --usercat=['all']     User category the rule applies to
  --hostcat=['all']     Host category the rule applies to
  --cmdcat=['all']      Command category the rule applies to
  --runasusercat=['all']
                        RunAs User category the rule applies to
  --runasgroupcat=['all']
                        RunAs Group category the rule applies to
...
abbra
la source