Set environment variable for another user (Standalone Trac problem)

1

I'd like to run tracd (Trac in standalone mode) with custom template for multiple repository list:

$ tracd -p 8080 -e /my/projects/path

For custom template, I need an environment variable (as said here):

$ export TRAC_ENV_INDEX_TEMPLATE=/path/to/template

My problem is, that I need to run tracd as another user. Now I have:

$ sudo -u devel tracd -d -p 8080 -e /my/projects/path 

Running like devel there's no environment variable and it displays the project list on default template. I tried the obvious:

$ sudo -u devel export TRAC_ENV_INDEX_TEMPLATE=/path/to/template
sudo: export: command not found

Is my approach to this completely wrong, or I can solve this with setting another user's environment variable?

Martin Tóth

Posted 2010-11-30T16:44:34.950

Reputation: 680

There's another obvious one: $ sudo -u devel bash and then export, which solves my problem, but I'd like to hear your opinion on this. – Martin Tóth – 2010-11-30T16:45:09.457

Answers

2

If you can run arbitrary commands as the devel user, a common idiom is

sudo -u devel env TRAC_ENV_INDEX_TEMPLATE=/path/to/template tracd -d -p 8080 -e /my/projects/path

If you have root permissions, you can tell sudo to retain the environment variable with the env_keep directive, e.g.

Defaults>devel: env_keep=TRAC_ENV_INDEX_TEMPLATE

Gilles 'SO- stop being evil'

Posted 2010-11-30T16:44:34.950

Reputation: 58 319