I use this:
su -l $MUSER -c "myCommand args..."
Refresh . Since there is interest in this answer, I explain how I use it here.
We run servers as regular Linux users, not root. The username consists of three parts:
service, customer, stage
Thus, we can run several services for several clients in one Linux operating system.
Example: foo_bar_p Service "foo" of the client "bar" and "p" means production
Here is the init script part. Init script can be run as root or as user foo_bar_p:
# /etc/init.d/foo_bar_p-celeryd # scriptname contains linux username SCRIPT_NAME=`basename "$0"` SYSTEM=${SCRIPT_NAME%*-celeryd} U=`id -nu` if [ ! $U == $SYSTEM ]; then if [ $U == "root" ]; then # use "-l (login)" to delete the environment variables of the calling shell. exec su -l $SYSTEM -c "$0 $@ " fi echo "Script must be run from $SYSTEM or root. You are '$U'" rc_exit 1 fi # OK, now I am foo_bar_p cd . $HOME/.bashrc ....
guettli
source share