Hi,

We noticed that recently --uid, and --gid functionality changed where 
previously a user in the slurm administrators group could launch jobs 
successfully with --uid, and --gid , allowing for them to submit jobs as 
another user. Now, in order to use --uid, --gid, you have to be the root user.

What was the reasoning in making this change? Do people not trust the folks in 
the slurm administrator group to allow this behavior? Seems odd.

This bit us awhile back when upgrading from 16.05.6 to slurm 17.11 which has 
this --uid/--gid change in it. We've just recently gotten time to look into it. 
We've patched slurm (a very small change) to remove the check as we need this 
functionality. I'd imagine there wouldn't be any consequences from the minor 
change, but would like to hear if possible why the change was made and if this 
code change is a bad idea. Also, is there a better solution to allow a non-root 
slurm administrator user to submit jobs as another person?

slurm/src/sbatch/opt.c

----
case LONG_OPT_UID:
                        if (!optarg)
                                break;  /* Fix for Coverity false positive */
                        // remove the root only constraint for --uid
                        /*if (getuid() != 0) {
                                error("--uid only permitted by root user");
                                exit(error_exit);
                        }
                        */
                        if (opt.euid != (uid_t) -1) {
                                error("duplicate --uid option");
                                exit(error_exit);
                        }
                        if (uid_from_string(optarg, &opt.euid) < 0) {
                                error("--uid=\"%s\" invalid", optarg);
                                exit(error_exit);
                        }
                        break;

case LONG_OPT_GID:
                        if (!optarg)
                                break;  /* Fix for Coverity false positive */
                        // remove the root only constraint for --gid
                        /*if (getuid() != 0) {
                                error("--gid only permitted by root user");
                                exit(error_exit);
                        }*/
                        if (opt.egid != (gid_t) -1) {
                                error("duplicate --gid option");
                                exit(error_exit);
                        }
                        if (gid_from_string(optarg, &opt.egid) < 0) {
                                error("--gid=\"%s\" invalid", optarg);
                                exit(error_exit);
                        }
                        break;
----

Best,
Chris

—
Christopher Coffey
High-Performance Computing
Northern Arizona University
928-523-1167
 

Reply via email to