Sha256: f2c82f6c49a446488c08c7eb54e3c40dc045fc3bf88b574e9ca1af7246e3d885

Contents?: true

Size: 525 Bytes

Versions: 11

Compression:

Stored size: 525 Bytes

Contents

require 'daemons/etc_extension'

class CurrentProcess
  def self.change_privilege(user, group = user)
    uid, gid = Process.euid, Process.egid
    target_uid = Etc.getpwnam(user).uid
    target_gid = Etc.getgrnam(group).gid

    if uid != target_uid || gid != target_gid
      Process.initgroups(user, target_gid)
      Process::GID.change_privilege(target_gid)
      Process::UID.change_privilege(target_uid)
    end
  rescue Errno::EPERM => e
    raise "Couldn't change user and group to #{user}:#{group}: #{e}"
  end
end

Version data entries

11 entries across 9 versions & 3 rubygems

Version Path
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.1.0/gems/daemons-1.4.1/lib/daemons/change_privilege.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/3.0.0/gems/daemons-1.4.1/lib/daemons/change_privilege.rb
devcycle-ruby-server-sdk-1.1.0 examples/sinatra/vendor/bundle/ruby/2.6.0/gems/daemons-1.4.1/lib/daemons/change_privilege.rb
daemons-1.4.1 lib/daemons/change_privilege.rb
daemons-1.4.0 lib/daemons/change_privilege.rb
daemons-1.3.1 lib/daemons/change_privilege.rb
daemons-1.3.0 lib/daemons/change_privilege.rb
daemons-1.2.6 lib/daemons/change_privilege.rb
daemons-1.2.5 lib/daemons/change_privilege.rb
arcabouco-0.2.13 vendor/bundle/gems/daemons-1.2.4/lib/daemons/change_privilege.rb
daemons-1.2.4 lib/daemons/change_privilege.rb