class Chef::Provider::User::Solaris
Constants
- UNIVERSAL_OPTIONS
Attributes
password_file[W]
Public Class Methods
new(new_resource, run_context)
click to toggle source
Calls superclass method
Chef::Provider::User.new
# File lib/chef/provider/user/solaris.rb, line 29 def initialize(new_resource, run_context) @password_file = "/etc/shadow" super end
Public Instance Methods
create_user()
click to toggle source
Calls superclass method
Chef::Provider::User::Useradd#create_user
# File lib/chef/provider/user/solaris.rb, line 34 def create_user super manage_password end
manage_user()
click to toggle source
Calls superclass method
Chef::Provider::User::Useradd#manage_user
# File lib/chef/provider/user/solaris.rb, line 39 def manage_user manage_password super end
Private Instance Methods
days_since_epoch()
click to toggle source
# File lib/chef/provider/user/solaris.rb, line 85 def days_since_epoch (Time.now.to_i / 86400).floor end
manage_password()
click to toggle source
# File lib/chef/provider/user/solaris.rb, line 46 def manage_password if @current_resource.password != @new_resource.password && @new_resource.password Chef::Log.debug("#{@new_resource} setting password to #{@new_resource.password}") write_shadow_file end end
updated_password(entry)
click to toggle source
# File lib/chef/provider/user/solaris.rb, line 78 def updated_password(entry) fields = entry.split(":") fields[1] = @new_resource.password fields[2] = days_since_epoch fields.join(":") end
write_shadow_file()
click to toggle source
# File lib/chef/provider/user/solaris.rb, line 53 def write_shadow_file buffer = Tempfile.new("shadow", "/etc") ::File.open(@password_file) do |shadow_file| shadow_file.each do |entry| user = entry.split(":").first if user == @new_resource.username buffer.write(updated_password(entry)) else buffer.write(entry) end end end buffer.close # FIXME: mostly duplicates code with file provider deploying a file mode = ::File.stat(@password_file).mode & 07777 uid = ::File.stat(@password_file).uid gid = ::File.stat(@password_file).gid FileUtils.chown uid, gid, buffer.path FileUtils.chmod mode, buffer.path FileUtils.mv buffer.path, @password_file end