Class: Tango::Contexts::User

Inherits:
Object
  • Object
show all
Defined in:
lib/tango/contexts/user.rb

Instance Method Summary collapse

Constructor Details

#initialize(username) ⇒ User

Returns a new instance of User.



7
8
9
# File 'lib/tango/contexts/user.rb', line 7

def initialize(username)
  @username = username
end

Instance Method Details

#enterObject



11
12
13
14
15
16
17
# File 'lib/tango/contexts/user.rb', line 11

def enter
  @uid, @gid = Process.euid, Process.egid
  Process::Sys.seteuid(0) if @uid != 0
  info = Etc.getpwnam(@username)
  Process::Sys.setegid(info.gid)
  Process::Sys.seteuid(info.uid)
end

#leaveObject



19
20
21
22
# File 'lib/tango/contexts/user.rb', line 19

def leave
  Process::Sys.seteuid(@uid)
  Process::Sys.setegid(@gid)
end