Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS 

runas - Run a program under a specific user / group (poor man's suexec)

#!/usr/bin/env ruby

# runas - Run another program under the privileges of a specified user and group.
# This is necessary because sudo demands a password, as we need it to be hands off.
# A poor man's suexec basically.

require 'etc'

user, group, cmd = ARGV

begin
  uid = Etc.getpwnam(user).uid
  gid = Etc.getgrnam(group).gid

  unless Process.euid == uid && Process.egid == gid
    Process.initgroups(user, gid)
    Process::GID.change_privilege(gid)
    Process::UID.change_privilege(uid)
  end

  exec cmd
rescue
  puts "Could not run as #{user}:#{group}"
  exit 1
end


Usage example: ./runas username groupname "sleep 10"

Get list of running processes

 Console.WriteLine("ID:\tProcess name:");
 Console.WriteLine("--\t------------");
 foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses())
  Console.WriteLine("{0}\t{1}", process.Id, process.ProcessName); 
« Newer Snippets
Older Snippets »
Showing 1-2 of 2 total  RSS