Changing the UserID used by JobScheduler on Unix systems
Question
One of the files on our file system belongs to a different user to that used by our JobScheduler.
This is causing the following errors:
2012-10-15 18:26:27.360 [info] SCHEDULER-918 state=starting (at=2012-10-15 18:26:27.333) 2012-10-15 18:26:27.361 [info] SCHEDULER-987 Starting process: '/bin/sh' '-c' '"/tmp/schedule/sos.ABC"' 2012-10-15 18:26:27.475 [info] /tmp/schedule/sos.ABC: line 4: ./TDloadXXX: Permission denied 2012-10-15 18:26:27.475 [info] SCHEDULER-915 Process event 2012-10-15 18:26:27.476 [ERROR] SCHEDULER-280 Process terminated with exit code 126 (0x7E)
I noticed there is a setuid
utility that could be used, I have looked through the FAQ, could you give us some information please as this could fix our issue?
Answer
The setuid
utility is deprecated.
There are some more possible ways of accessing an object belonging to a different user:
Use Agent instances
Multiple Agents can be operated to run in different accounts from the same Agent installation
For details see JobScheduler Universal Agent - Running multiple instances
Use
sudo
in the JobScheduler jobTo access a file belonging to "other_user" use
sudo -u other_user script_for_other_user.sh
Make sure that
other_user
doesn't require a password forsudo
. This can be achieved by adjusting the configuration from thesudoers
file. This method is extremely flexible - you can change the user more than once within a job. ifsudo
requires a password then you can useecho "<password>" | sudo -S -u other_user script_for_other_user.sh
- Use SSH jobs
- The use of SSH is not restricted to remote computers - you can use it to access local files.
- A JITL SSH job is provided with each JobScheduler installation. See the following articles: