通过puppet禁用用户sudo的有效方法

通过puppet禁用用户sudo的有效方法,puppet,manifest,sudo,visudo,Puppet,Manifest,Sudo,Visudo,我已在我的环境中安装了puppet 6,并希望确保用户centos无法sudo在我的所有代理上运行。我可以创建如下内容: modules/sudoer/manifests/disable_sudo.pp # Manage the sudoers file class sudoers { file { '/etc/sudoers': source => 'puppet:///modules/sudoers/sudoers', mode => '0440',

我已在我的环境中安装了puppet 6,并希望确保用户
centos
无法
sudo
在我的所有代理上运行。我可以创建如下内容:

modules/sudoer/manifests/disable_sudo.pp

# Manage the sudoers file
class sudoers {
  file { '/etc/sudoers':
    source => 'puppet:///modules/sudoers/sudoers',
    mode => '0440', 
    owner => 'root',
    group => 'root',
  }
}   
然后创建一个
modules/sudoers/files/sudoers
文件,将我喜欢的内容放在其中,并确保centos行被注释掉:

#centos ALL=(ALL)   NOPASSWD: ALL

但是这非常冗长,在puppet 3中,我只能在
hiera
中使用
sudo::disable\centos:true
。有没有更好的方法让puppet阻止用户
centos
使用sudo?谢谢

这与Puppet 3和Puppet 6无关,听起来更像是你以前有一个不同的sudo模块。升级到Puppet 6时,您是否更改了sudo模块?根据您的“Puppet 3”注释,您是否仍安装了
模块/sudo/
,它可能位于
/etc/puppetlabs/code//modules
/opt/puppetlabs/Puppet/modules
?以前安装了Puppet sudo模块V3.0.1,并且不得不注释centos系列。现在我正在使用puppet sudo模块v2.4.3,它很旧,需要升级。因此,升级该模块(请同时提供来自forge的链接,通常该行位于
Puppetfile
,或者如果您手动安装…是
puppet模块列表--tree
的输出,因此您还可以看到依赖项),现在至少有16种不同的sudo模块可从锻造厂获得,但没有puppet/sudo或puppetlabs/sudo。版本号排除了其中的许多——大多数版本的最新版本低于2.0——但其余版本的最新版本号超过5。换句话说,我们不知道您正在使用什么sudo模块。这很重要。