morgon has asked for the wisdom of the Perl Monks concerning the following question:
I have a script that is started by udev and so runs as root. What I want the script to do is to fork off another long-running process that is supposed to run as another user.
Here is what I do at the moment:
if(fork()) { # do some stuff in the parent as root } else { # child - run process as another user exec "/usr/bin/sudo -u some_other_id $command_to_run" }
This works but in the process table I end up with 2 processes: One for the started command running as some_other_id and a root-process for the sudo.
My question is now how to avoid having the sudo-process staying around.
To rephrase: How do you fork off a long-runnning process under an other user-id while avoiding a root-owned sudo-process staying around as well.
Please note that I want the new process to appear in the process-table as beloning to the other user, so setting effective uid does not do the trick as the process would still appear as root in ps.
Many thanks!
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Running process as another user
by Corion (Patriarch) on May 14, 2014 at 09:44 UTC | |
by morgon (Priest) on May 14, 2014 at 09:51 UTC | |
by Corion (Patriarch) on May 14, 2014 at 11:45 UTC | |
by morgon (Priest) on May 14, 2014 at 15:14 UTC | |
Re: Running process as another user
by mhearse (Chaplain) on May 14, 2014 at 11:25 UTC | |
Re: Running process as another user
by Anonymous Monk on May 14, 2014 at 11:08 UTC |