我很难理解 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 中那样指定呢?可以使用通配符(例如 *)吗?
答案1
如果您希望一组用户能够使用 执行任何命令,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 执行此操作。
答案2
当您想要添加ALL
规则时,可以使用带有值的 category 选项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
...