Sha256: 793cf3c51db8476d67aa784c38ea25e0b840c421a877c5f48657ab01ce710172

Contents?: true

Size: 583 Bytes

Versions: 66

Compression:

Stored size: 583 Bytes

Contents

require 'daemons/etc_extension'

class CurrentProcess
  def self.change_privilege(user, group=user)
    puts "Changing process privilege to #{user}:#{group}"
  
    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

66 entries across 66 versions & 7 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.7.4 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.7.3 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
asana2flowdock-1.0.0 vendor/bundle/ruby/1.9.1/gems/daemons-1.1.9/lib/daemons/change_privilege.rb
mikehale-daemons-1.0.12.1 lib/daemons/change_privilege.rb
mikehale-daemons-1.0.12.2 lib/daemons/change_privilege.rb
mikehale-daemons-1.0.12.3 lib/daemons/change_privilege.rb
mikehale-daemons-1.0.12.4 lib/daemons/change_privilege.rb
blue-daemons-1.1.11 lib/daemons/change_privilege.rb
mlanett-daemons-1.1.10.3 lib/daemons/change_privilege.rb
mlanett-daemons-1.1.10.2 lib/daemons/change_privilege.rb
classiccms-0.7.2 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.7.1 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.7.0 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.9 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.8 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.7 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.6 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.5 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb
classiccms-0.6.4 vendor/bundle/gems/daemons-1.1.8/lib/daemons/change_privilege.rb