A start on running Galaxy DRMAA jobs as different users Dr Paul Smith, Principle Data Architect, Illumina Inc. © 2010 Illumina, Inc.

Download Report

Transcript A start on running Galaxy DRMAA jobs as different users Dr Paul Smith, Principle Data Architect, Illumina Inc. © 2010 Illumina, Inc.

A start on running
Galaxy DRMAA
jobs as different
users
Dr Paul Smith, Principle Data Architect, Illumina Inc.
© 2010 Illumina, Inc. All rights reserved.
Illumina, illuminaDx, Solexa, Making Sense Out of Life, Oligator, Sentrix, GoldenGate, GoldenGate Indexing, DASL, BeadArray, Array of Arrays, Infinium, BeadXpress, VeraCode, IntelliHyb, iSelect, CSPro,
GenomeStudio, Genetic Energy, HiSeq, and HiScan are registered trademarks or trademarks of Illumina, Inc. All other brands and names contained herein are the property of their respective owners.
Need to be able to run jobs as the user that requested it
Allows usage tracking
Allows job priority
Allows data access control
Allows the use of external space monitoring tools
2
Need to change user
Program needs to be able to change user
On a single system this generally means a SUID script
SUID scripts are a potential security hole
Could use an existing program that has SUID functionality e.g SSH, Apache
3
Most of the work already done
Gordon Assaf seems to have already done most of the work.
http://gmod.827538.n3.nabble.com/running-DRMAA-sge-jobs-as-different-userstd1020509.html
To try this out:
1. import the patch
2. edit your 'universe_wsgi.ini'
3. edit /etc/sudoers to allow the script (drmaa_external_runner.py) to run as root
4
Final part left as an exercise
The logic to actually select which user to use is not implemented
def get_qsub_user(self, job_wrapper):
""" Returns the UserID (or Username) that should be used to execute the job. """
#TODO:
#add some logic to decide on an SGE user for the given job.
return os.getuid()
Just needs finishing 
5