[PATCH] Optionally allow pam_setcred to override gid

Ryan Cox ryan_cox at byu.edu
Fri May 22 08:07:33 AEST 2015

Any thoughts on this approach?  (Bugzilla entry added since the last 
email: https://bugzilla.mindrot.org/show_bug.cgi?id=2380)


On 04/13/2015 11:54 AM, Ryan Cox wrote:
> I would like to allow pam_setcred/pam_sm_setcred to override the gid 
> that is normally set for a user.  Currently the openssh code calls 
> do_pam_setcred then it sets the gid to the user's gid as listed in 
> /etc/passwd, LDAP, or whatever regardless of what the pam module set 
> it to.  I would instead like a pam module to be able to set the gid 
> with setgid() and not have it overwritten by openssh.
> I wrote a patch that does just that by comparing getgid() before and 
> after calling do_pam_setcred.  If the gid changes it sets pw->gid to 
> the new gid, which is used in later functions.  I don't know if this 
> is considered the proper way to achieve that behavior in a safe way 
> but it seemed logical to me.  The behavior is optional; 
> PermitGidOverride=no is the default.
> As for the reasoning, this is for a scheduled environment using 
> Slurm.  I am developing a pam module that "adopts" ssh processes into 
> the appropriate batch job on the node.  Users can launch jobs via 
> Slurm that run with their gid as one of their supplementary groups.  
> As part of the adoption of the ssh process, I would like to set the 
> ssh process's gid equal to that of the job it is being adopted into.
> Ryan
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev

More information about the openssh-unix-dev mailing list