/usr/lib/ruby/vendor_ruby/ohai/plugins/passwd.rb is in ohai 8.4.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 | require 'etc'
Ohai.plugin(:Passwd) do
provides 'etc', 'current_user'
def fix_encoding(str)
str.force_encoding(Encoding.default_external) if str.respond_to?(:force_encoding)
str
end
collect_data do
unless etc
etc Mash.new
etc[:passwd] = Mash.new
etc[:group] = Mash.new
Etc.passwd do |entry|
user_passwd_entry = Mash.new(:dir => entry.dir, :gid => entry.gid, :uid => entry.uid, :shell => entry.shell, :gecos => entry.gecos)
user_passwd_entry.each_value {|v| fix_encoding(v)}
entry_name = fix_encoding(entry.name)
etc[:passwd][entry_name] = user_passwd_entry unless etc[:passwd].has_key?(entry_name)
end
Etc.group do |entry|
group_entry = Mash.new(:gid => entry.gid,
:members => entry.mem.map {|u| fix_encoding(u)})
etc[:group][fix_encoding(entry.name)] = group_entry
end
end
unless current_user
current_user fix_encoding(Etc.getpwuid(Process.euid).name)
end
end
collect_data(:windows) do
# Etc returns nil on Windows
end
end
|