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
that could be used, I have looked through the FAQ, could you give us some information please as this could fix our issue?
Answer
SETUID
is deprecated.
There are, however, two other possible ways of accessing an object belonging to another user.
Use
sudo
in the JobScheduler job.To access a file belonging to "other_user" use sudo -u other_user script_for_other_user.sh Make sure that other_user doesn't need a password for sudo. This is done by editing the sudoers file. This method has the advantage that it is extremely flexible - you can change the user more than once within a job. if a sudo password required then you can call
echo "<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.Note that the use of SSH is not confined to remote computers - you can use it to access local files. A JITL SSH job is provided with every JobScheduler installation. See the following:
- JITL Jobs
- Executing Jobs on different Hosts
- The second answer to Run Jobs as a Specific UserID