# File lib/puppet/provider/user/user_role_add.rb, line 170
170:     def password=(cryptopw)
171:         begin
172:             File.open("/etc/shadow", "r") do |shadow|
173:                 File.open("/etc/shadow_tmp", "w", 0600) do |shadow_tmp|
174:                     while line = shadow.gets do
175:                         line_arr = line.split(':')
176:                         if line_arr[0] == @resource[:name]
177:                             line_arr[1] = cryptopw
178:                             line = line_arr.join(':')
179:                         end
180:                         shadow_tmp.print line
181:                     end
182:                 end
183:             end
184:             File.rename("/etc/shadow_tmp", "/etc/shadow")
185:         rescue => detail
186:             fail "Could not write temporary shadow file: %s" % detail
187:         ensure
188:             # Make sure this *always* gets deleted
189:             File.unlink("/etc/shadow_tmp") if File.exist?("/etc/shadow_tmp")
190:         end
191:     end