Verwenden von FreeIPA für zentralisiertes Sudo - Wie werden ALLE Befehle angegeben?

9

Es fällt mir schwer, mich mit dem FreeIPA-Modell zu beschäftigen. Im FreeIPA- Handbuch heißt es:

FreeIPA fügt eine zusätzliche Kontrollmaßnahme mit sudo-Befehlsgruppen hinzu, mit der eine Gruppe von Befehlen definiert und dann als eine auf die sudo-Konfiguration angewendet werden kann.

In ihren Beispielen geht es jedoch im Wesentlichen um das Erstellen einer Sudo-Befehlsgruppe und das Hinzufügen bestimmter Sudo-Befehle wie vimund lesszu einer "Dateien" -Sudo-Befehlsgruppe.

zB von der Kommandozeile:

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

Aber wie spezifizieren ALLSie wie in / etc / sudoers? Kann dies mit einem Platzhalter versehen werden (z. B. *)?

HTTP500
quelle

Antworten:

9

Sie müssen keine Befehlsgruppen erstellen, wenn eine Gruppe von Benutzern einen Befehl mit ausführen kann sudo. Sie benötigen lediglich eine Sudo-Regel, die alle Befehle zulässt, und eine sollte standardmäßig für Sie erstellt worden sein, als Sie FreeIPA installiert haben.

# 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
----------------------------

(Wenn eine solche Regel nicht existiert, erstellen Sie sie.)

ipa sudorule-add --cmdcat=all All

Fügen Sie einfach die Benutzer oder Gruppen zu dieser Sudo-Regel hinzu, die Sie sudomit jedem Befehl ausführen möchten .

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

Sie können dies auch über die Web-Benutzeroberfläche tun, wenn Sie dies bevorzugen.

Michael Hampton
quelle
Die Regel existierte standardmäßig nicht und es war ein wenig Arbeit erforderlich, um eine Regel zu erhalten, die Ihrer entspricht, dh "% admins ALL = (ALL) ALL", aber ich denke, ich bin jetzt auf dem Weg der Erleuchtung. Sehr geschätzt, danke!
HTTP500
Dies ist eine dieser Aufgaben, die in der Web-Benutzeroberfläche offensichtlich viel einfacher war als in der Befehlszeile. Ich habe eine ganze Weile gebraucht, um in der CLI noch so weit zu kommen.
Michael Hampton
Einverstanden habe ich die Regel in der Web-Benutzeroberfläche abgeschlossen.
HTTP500
Wenn Sie möchten, dass die Regel auf allen Hosts wirksam wird, habe ich festgestellt, dass --hostcat=allsudo ohne Angabe beim Erstellen der Regel nicht zulässig ist (das Hinzufügen dieser Option zu einer vorhandenen Regel ist durch Ausgabe möglich sudorule-mod --hostcat=all).
nivs
2
@ HTTP500 Wenn Sie Dinge tun mussten, die nicht in Ihrem OP oder in der akzeptierten Antwort aufgeführt sind, geben Sie bitte die Schritte / Details für andere an, dh die Regel war standardmäßig nicht vorhanden und es war ein wenig Arbeit erforderlich, um eine Regel zu erhalten das passte zu deinem ... Welches Stück Arbeit war erforderlich? Wie haben Sie das gewünschte Ergebnis erzielt?
0xSheepdog
0

Wenn Sie ALLeiner Regel hinzufügen möchten , können Sie die Kategorieoption mit Wert verwenden all. Für Befehle, die --cmdcat=allfür Hosts - --hostcat=all, für Benutzer - --usercat=allund einige weitere unten gelten.

Alle diese Optionen sind sichtbar 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
...
abbra
quelle