Module: Facter::Util::Root

Extended by:
Windows::Security, Windows::SystemInfo
Defined in:
lib/facter/util/unix_root.rb,
lib/facter/util/windows_root.rb

Class Method Summary collapse

Class Method Details

.check_token_membershipObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/facter/util/windows_root.rb', line 17

def self.check_token_membership
  sid = 0.chr * 80
  size = [80].pack('L')
  member = 0.chr * 4

  unless CreateWellKnownSid(Windows::Security::WinBuiltinAdministratorsSid, nil, sid, size)
    raise "Failed to create administrators SID"
  end

  unless IsValidSid(sid)
    raise "Invalid SID"
  end

  unless CheckTokenMembership(nil, sid, member)
    raise "Failed to check membership"
  end

  # Is administrators SID enabled in calling thread's access token?
  member.unpack('L')[0] == 1
end

.root?Boolean

Returns:

  • (Boolean)


2
3
4
# File 'lib/facter/util/unix_root.rb', line 2

def self.root?
  Process.uid == 0
end