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.
FEATURE AVAILABILITY ENDING WITH RELEASE 1.11
- JS-1565Getting issue details... STATUS
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 has the advantage that it 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
If it is not possible to use
sudo
or if all the files you are accessing have the same owner you can either use SSH or a JobScheduler Agent.xx
Note that 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 every JobScheduler installation. See the following: