Utilizzando FreeIPA per sudo centralizzato - come specificare TUTTI i comandi?


9

Sto facendo fatica a avvolgere la testa attorno al modello di FreeIPA. Il manuale di FreeIPA afferma:

FreeIPA aggiunge una misura di controllo aggiuntiva con i gruppi di comandi sudo, che consentono di definire un gruppo di comandi e quindi applicarli alla configurazione sudo come uno.

Ma i loro esempi in sostanza parlano della creazione di un gruppo di comandi sudo e dell'aggiunta di particolari comandi sudo come vime lessin un gruppo di comandi sudo "file".

ad es. dalla riga di comando:

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

Ma come si specifica ALLcome si farebbe in / etc / sudoers? Questo può essere jolly (es. *)?

Risposte:


9

Non è necessario creare gruppi di comandi se si desidera che un gruppo di utenti sia in grado di eseguire qualsiasi comando con sudo. Hai solo bisogno di una regola sudo che permetta tutti i comandi, e uno dovrebbe essere stato creato per te quando hai installato 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
----------------------------

(Se tale regola non esiste, creala.)

ipa sudorule-add --cmdcat=all All

Basta aggiungere gli utenti o i gruppi a questa regola sudo che si desidera poter utilizzare sudocon qualsiasi comando.

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

Puoi anche farlo dall'interfaccia utente Web se preferisci.


La regola non esisteva per impostazione predefinita e ci è voluto un po 'di lavoro per ottenere una regola che corrispondesse alla tua, ovvero "% admins ALL = (ALL) ALL" ma penso di essere sulla strada dell'illuminazione ora. Molto apprezzato, grazie!
HTTP500 del

Questa è una di quelle attività che era ovviamente molto più semplice nell'interfaccia utente Web rispetto alla riga di comando. Mi ci è voluto un po 'di tempo per arrivare fino a quel punto nella CLI.
Michael Hampton,

D'accordo, ho finito la regola nell'interfaccia utente Web.
HTTP500 del

Se vuoi che la regola sia efficace su tutti gli host, ho notato che senza specificare --hostcat=alldurante la creazione della regola, sudo non è permesso (l'aggiunta di questa opzione a una regola esistente è possibile mediante emissione sudorule-mod --hostcat=all).
nivs

2
@ HTTP500 Se hai dovuto fare cose che non sono elencate nel tuo OP o nella Risposta accettata, ti preghiamo di fornire i passaggi / i dettagli per gli altri, cioè la regola non esisteva di default e ci voleva un po 'di lavoro per ottenere una regola che corrispondeva al tuo ... Che lavoro era richiesto? Come hai ottenuto il risultato desiderato?
0xSheepdog

0

Quando si desidera aggiungere ALLuna regola, è possibile utilizzare l'opzione di categoria con valore all. Per i comandi che sarebbero --cmdcat=all, per gli host - --hostcat=all, per gli utenti - --usercat=alle pochi altri di seguito.

Tutte queste opzioni sono visibili in 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
...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.