Link to home
Start Free TrialLog in
Avatar of Mark
Mark

asked on

Redirect stdout of sudo to target user's file

Is there a way to direct the stdout/stderror of a sudo command to a file in the target sudo user's directory? For example, I'm sudo'ing from my /etc/mail/aliases as:

aliasId: |"/usr/bin/sudo -u ar '/user/util/bin/DistRegister"

which works fine, but what I'd like is something like:

aliasId: |"/usr/bin/sudo -u ar '/user/util/bin/DistRegister >>/home/ar/DistRegister.log 2>&1'"

specified this way, sudo can't find the command (it thinks everything inside the single quotes is the command). If I leave off the single quotes, I get a permission error on /home/ar/DistRegister.log because the mailer daemon is trying to access it.

Any solutions? Perhaps something in the sudoers file?

Linux 2.4.29
Avatar of PsiCop
PsiCop
Flag of United States of America image

Write a shell script to do what you want and sudo the shell script.
It's rather becouse MTA does not run Your code under shell (so the redirects do not work).

Write script, which will call the sudo ans stuff, then put into /etc/mail/aliases
aliasId: | "/path/to/script.sh"
ASKER CERTIFIED SOLUTION
Avatar of Tim_Utschig
Tim_Utschig

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial