Linux 如何使用SHA-512哈希和Puppet设置用户密码?
我想用Puppet设置用户密码。守则:Linux 如何使用SHA-512哈希和Puppet设置用户密码?,linux,puppet,redhat,Linux,Puppet,Redhat,我想用Puppet设置用户密码。守则: if ($operatingsystemmajrelease == '7') { group { 'zabbix': name => "zabbix", ensure => "present", } user { 'zabbix': name => "zabbix", groups => "zabbix", password => "$6$UdvUfiKs$r
if ($operatingsystemmajrelease == '7') {
group { 'zabbix':
name => "zabbix",
ensure => "present",
}
user { 'zabbix':
name => "zabbix",
groups => "zabbix",
password => "$6$UdvUfiKs$rb4XFkCn2h/AUZrJsg2wnRDkOH5E5lliJZXqySVEYUDARFSlWKYHOeMLWycTa2jIMa3XQ3MWtq1EiilBZCbKX.",
}
}
产生一个错误:
错误:无法从远程服务器检索目录:服务器上的错误500:{“消息”:“服务器错误:变量名称非法,给定名称'UdvUfiKs'不符合命名规则/^(::)?[a-z]\w*(:)?[a-z]\w*)$/at/opt/puppetlabs/environments/Linux_nieprodukcja/modules/zabbix_install_lin/manifests/init.pp:16:20在节点napup01.corpnet.pl上,“问题种类”:“运行时错误”}
SHA-512我在添加用户zabbix后生成了表单shell
passwd zabbix
,并将其复制到清单中。为什么会出现此错误?这里的问题是,您在用户的资源的密码
属性中使用了双引号。这指示Puppet在其他操作中插入变量。Puppet将前导的$
解释为变量名的开头,而不是SHA-512哈希。你必须做字符串转义来帮助这里。这种行为在所有解释性语言中都很常见。您可以使用字符串文字代替''
,轻松解决此问题:
请注意,puppet lint会向您发出警告,提醒您此问题,并帮助您解决此问题:
user { 'zabbix':
name => 'zabbix',
groups => 'zabbix',
password => '$6$UdvUfiKs$rb4XFkCn2h/AUZrJsg2wnRDkOH5E5lliJZXqySVEYUDARFSlWKYHOeMLWycTa2jIMa3XQ3MWtq1EiilBZCbKX.',
}