puppetlabs/puppet · error · Puppet::Error
OS X versions > 10.7 use PBKDF2 password hashes, which requi
Error message
OS X versions > 10.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}. What it means
Error "OS X versions > 10.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}." thrown in puppetlabs/puppet.
Source
Thrown at lib/puppet/provider/user/directoryservice.rb:483
begin
dscl '.', '-create', "/Users/#{resource.name}", self.class.ns_to_ds_attribute_map[setter_method.intern], value
rescue Puppet::ExecutionFailure => e
raise Puppet::Error, "Cannot set the #{setter_method} value of '#{value}' for user " \
"#{@resource.name} due to the following error: #{e.inspect}", e.backtrace
end
end
end
end
## ##
## Helper Methods ##
## ##
def assert_full_pbkdf2_password
missing = [:password, :salt, :iterations].select { |parameter| @resource[parameter].nil? }
unless missing.empty?
raise Puppet::Error, "OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}."
end
end
def users_plist_dir
'/var/db/dslocal/nodes/Default/users'
end
def self.password_hash_dir
'/var/db/shadow/hash'
end
# This method will create a given value using dscl
def create_attribute_with_dscl(path, username, keyname, value)
set_attribute_with_dscl('-create', path, username, keyname, value)
end
# This method will merge in a given value using dscl
def merge_attribute_with_dscl(path, username, keyname, value)View on GitHub (pinned to e227c27540)
When it happens
Trigger: Thrown at lib/puppet/provider/user/directoryservice.rb:483 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of puppetlabs/puppet@e227c27540 (2026-08-21).
Data as JSON: /api/errors/c7f6482c26b2af29.
Report an issue: GitHub.