/usr/lib/ruby/vendor_ruby/specinfra/command/freebsd/base/user.rb is in ruby-specinfra 2.66.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | class Specinfra::Command::Freebsd::Base::User < Specinfra::Command::Base::User
class << self
def create(os_info=nil)
if (os_info || os)[:release].to_i < 7
Specinfra::Command::Freebsd::V6::User
else
self
end
end
def get_minimum_days_between_password_change(user)
'echo 0'
end
def get_maximum_days_between_password_change(user)
"pw usershow -n #{escape(user)} | cut -d':' -f 6"
end
def update_home_directory(user, directory)
"pw user mod #{escape(user)} -d #{escape(directory)}"
end
def update_login_shell(user, shell)
"pw user mod #{escape(user)} -s #{escape(shell)}"
end
def update_uid(user, uid)
"pw user mod #{escape(user)} -u #{escape(uid)}"
end
def update_gid(user, gid)
"pw user mod #{escape(user)} -g #{escape(gid)}"
end
def add(user, options)
command = ['pw', 'user', 'add', escape(user)]
command << '-g' << escape(options[:gid]) if options[:gid]
command << '-d' << escape(options[:home_directory]) if options[:home_directory]
command << '-s' << escape(options[:shell]) if options[:shell]
command << '-m' if options[:create_home]
command << '-u' << escape(options[:uid]) if options[:uid]
if options[:password]
command.concat(['&&', 'chpass', '-p', "\'#{options[:password]}\'", escape(user)])
end
command.join(' ')
end
def update_encrypted_password(user, encrypted_password)
"chpass -p \'#{encrypted_password}\' #{escape(user)}"
end
def get_encrypted_password(user)
"getent passwd #{escape(user)} | awk -F: '{ print $2 }'"
end
end
end
|