<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: processes code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 27 Jul 2008 03:03:38 GMT</pubDate>
    <description>DZone Snippets: processes code</description>
    <item>
      <title>runas - Run a program under a specific user / group (poor man's suexec)</title>
      <link>http://snippets.dzone.com/posts/show/5344</link>
      <description>&lt;code&gt;#!/usr/bin/env ruby&lt;br /&gt;&lt;br /&gt;# runas - Run another program under the privileges of a specified user and group.&lt;br /&gt;# This is necessary because sudo demands a password, as we need it to be hands off.&lt;br /&gt;# A poor man's suexec basically.&lt;br /&gt;&lt;br /&gt;require 'etc'&lt;br /&gt;&lt;br /&gt;user, group, cmd = ARGV&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;  uid = Etc.getpwnam(user).uid&lt;br /&gt;  gid = Etc.getgrnam(group).gid&lt;br /&gt;&lt;br /&gt;  unless Process.euid == uid &amp;&amp; Process.egid == gid&lt;br /&gt;    Process.initgroups(user, gid)&lt;br /&gt;    Process::GID.change_privilege(gid)&lt;br /&gt;    Process::UID.change_privilege(uid)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  exec cmd&lt;br /&gt;rescue&lt;br /&gt;  puts "Could not run as #{user}:#{group}"&lt;br /&gt;  exit 1&lt;br /&gt;end&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Usage example: ./runas username groupname "sleep 10"</description>
      <pubDate>Thu, 10 Apr 2008 08:07:10 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5344</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
    <item>
      <title>Get list of running processes</title>
      <link>http://snippets.dzone.com/posts/show/4071</link>
      <description>&lt;code&gt;&lt;br /&gt; Console.WriteLine("ID:\tProcess name:");&lt;br /&gt; Console.WriteLine("--\t------------");&lt;br /&gt; foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses())&lt;br /&gt;  Console.WriteLine("{0}\t{1}", process.Id, process.ProcessName); &lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 29 May 2007 23:24:33 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4071</guid>
      <author>mstampar (Miroslav Stampar)</author>
    </item>
  </channel>
</rss>
