使用FreeIPA进行集中式sudo-如何指定所有命令?


9

我很难理解FreeIPA的模型。FreeIPA 手册指出:

FreeIPA通过sudo命令组添加了额外的控制措施,该控制措施允许定义一组命令,然后将其作为一个应用到sudo配置中。

但是他们的示例基本上讨论了创建sudo命令组并将特定的 sudo命令(例如vim和添加less到“文件” sudo命令组)的问题。

例如从命令行:

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

但是,如何ALL像在/ etc / sudoers中那样指定?可以使用通配符(例如*)吗?

Answers:


9

如果希望一组用户能够使用来执行任何命令,则无需进行命令分组sudo。您只需要一个允许所有命令的sudo规则,并且在安装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
----------------------------

(如果不存在这样的规则,请创建它。)

ipa sudorule-add --cmdcat=all All

只需sudo使用任何命令将用户或组添加到此sudo规则即可。

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

如果愿意,也可以从Web UI执行此操作。


该规则默认情况下不存在,需要花点时间才能获得与您的规则匹配的规则,即“%admins ALL =(ALL)ALL”,但我想我现在正处于启蒙的道路上。非常感谢,谢谢!
HTTP500 2013年

这显然是Web UI中比命令行要容易得多的任务之一。我花了相当长的时间才能在CLI中做到这一点。
迈克尔·汉普顿

同意,我完成了Web UI中的规则。
HTTP500 2013年

如果您希望该规则在所有主机上均有效,那么我会注意到,--hostcat=all在创建规则时未进行指定,则不允许使用sudo(可以通过发出将此选项添加到现有规则中sudorule-mod --hostcat=all)。
nivs

2
@ HTTP500如果您必须执行未在OP或“已接受的答案”中列出的操作,请为其他人提供步骤/详细信息,即默认情况下该规则不存在,并且花了一些工作才能获得一条规则与您相匹配的 ……需要什么工作?您是如何取得理想结果的?
0xSheepdog

0

要添加ALL到规则时,可以将category选项与value一起使用all。对于将是的命令--cmdcat=all,对于主机- --hostcat=all,对于用户- --usercat=all以及下面的其他命令。

所有这些选项在以下位置可见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
...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.