script calling script as other user
- by viktor tron
Using CentOs, I want to run a script as user 'training' as a system service. I use daemontools to monitor the process, which needs a launcher script that is run as root:
:
#!/bin/bash
exec >> /var/log/training_service.log 2>&1
setuidgid training training_command
This last line is not good enough since for training_command, we need environment for training user to be set.
:
su - training -c 'training_command'
gives 'standard in must be tty' as su making sure tty is present to potentially accept password.
I know I could make this disappear by modifying /etc/sudoers a la
Bash & 'su' script giving an error "standard in must be a tty" but i am reluctant and unsure of consequences.
:
runuser - training -c 'training_command'
gives runuser: cannot set groups: Connection refused. I found no sense or resolution to this message.
I am stuck. Is this something so hard to achieve?
I appreciate all insight and guidance to best practice.