Am 15.09.2011 um 01:15 schrieb Blosch, Edwin L:

> I would appreciate trying to fix the multi-word argument to 
> orte_launch_agent, unless you’ve already fixed it in a later series in which 
> case I could update.  My workaround with the setuid applied to a copied 
> executable doesn’t work for other applications that run on our clusters ( I 
> mean their job scripts would also have to be modified similarly).

I played around with `sg` and it looks like having some pitfalls:

$ sg 25000 ls -l

The -l will go to `sg`, even double quotes fo " and ' don't help and there is 
no --:

$ sg 2600 ls "'-l'"

gives an error too.

(I was about to suggest an orted wrapper doing: 

#!/bin/sh
exec sg 25000 orted ${@}"

but it failed.)


> I think OpenMPI should be able to launch all processes with the same uid and 
> gid even when the user has launched the job while using one of his secondary 
> groups.  Whether it should be a change request or bug (unexpected, 
> counter-intuitive), I’ll leave that to your judgment.

Yes, but for now the "username" is used, not the "uid" - right? So it could 
have a different uid/gid on the machines, but with the new feature they must be 
the same. Okay, in a cluster they are most likely unique across all machines 
anyway. But just to note as a side effect.

-- Reuti


> Thank you again for the support
>  
>  
>  
> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On 
> Behalf Of Ralph Castain
> Sent: Wednesday, September 14, 2011 5:10 PM
> To: Open MPI Users
> Subject: Re: [OMPI users] EXTERNAL: Re: Can you set the gid of the processes 
> created by mpirun?
>  
> Hi Ed
>  
> I finally had some time to dig around a little. I believe we could make this 
> work if I fix the multi-word cmd line param issue. Either "newgrp" or "sg" 
> should resolve the problem - both are user-level cmds.
>  
> Up to you - let me know if you want me to pursue this.
> Ralph
>  
>  
> On Sep 14, 2011, at 3:31 PM, Blosch, Edwin L wrote:
> 
> 
> Thank you -  I did pursue this kind of workaround, and it worked, but you’ll 
> be happy to know that nothing had to be owned by root.
>  
> ASIDE ----
> Just to remind:  The job script is a shell script that invokes mpirun; the 
> job script itself is run with as the correct user, but the group id may be 
> changed to whatever the user requests of the job-scheduling system.  I think 
> it may not be uncommon to have jobs that request a specific Unix group, for 
> many reasons, but in our case the group is an input for the scheduler’s 
> prioritization policy.
>  
> Outcome: rank 0 runs user:group2 as the user requested, but the launched 
> child processes run  user:group1  where group 1 is the user’s primary group.  
> The peculiarity of this application is that each of the processes writes a 
> file to disk, so the resulting group ownership of rank 0 files is group2, but 
> the group ownership of all other ranks’ files is group1.  That was the 
> original problem I’m trying to work around.
> --- END ASIDE
>  
> Fortunately for me, there is another peculiarity of this application -- the 
> executable gets copied out to /tmp (local space) on each of the hosts to be 
> used in the job.  We found this helped prevent some crashes during test 
> phases where an executable gets overwritten while in use.  Definitely a 
> special behavior.  But as a result of this peculiarity, the mpirun command 
> ends up launching the copied executable, and I took advantage of that.
>  
> I had the job script do chown user:group2 on the copied executables and then 
> chmod 6711, and then I observed that the child processes ran as user:group2, 
> same as the rank 0 process, so the files they created had the desired group 
> ownership.
>  
> I will explore Reuti’s guidance as well.
>  
> Thank you
>  
>  
> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On 
> Behalf Of Randall Svancara
> Sent: Wednesday, September 14, 2011 3:07 PM
> To: Open MPI Users
> Subject: Re: [OMPI users] EXTERNAL: Re: Can you set the gid of the processes 
> created by mpirun?
>  
> You could set the setuid bit on the application and chown it to root??  It is 
> about as secure as anything else that has been described thus far.  As a 
> system admin, I cringe at the thought of anything that would allow something 
> to run as someone else,  so there would have to be a pretty good 
> justification for such unique use case as yours.  
> 
> Randall
> 
> On Wed, Sep 14, 2011 at 12:56 PM, Reuti <re...@staff.uni-marburg.de> wrote:
> Am 14.09.2011 um 19:02 schrieb Blosch, Edwin L:
> 
> > Thanks for trying.
> >
> > Do you feel that this is an impossible request without the assistance of 
> > some process running as root, for example, as Reuti mentioned, the daemons 
> > of a job scheduler?  Or are you saying it will just not be as 
> > straightforward as calling setgid as you had hoped?
> >
> > Also, do you think there is a way I could make use of the sg command below? 
> >  Perhaps there is a way to have the rsh/ssh launcher start the application 
> > processes with a command like 'sg <group> <executable name>'?
> 
> What about a half-tight integration (or call it: classic tight integration), 
> i.e. no recompilation necessary?
> 
> - setup your mpiexec call in the jobscript to use a plain rsh for the remote 
> startup (no path given): –mca plm_rsh_agent rsh
> 
> - the PE of SGE needs the argument -catch_rsh in start_proc_args and the 
> supplied script in $SGE_ROOT/mpi/startmpi.sh
> 
>  (SGE will create a symbolic link in $TMPDIR therein [which will be called 
> first this way] to the rsh-wrapper in $SGE_ROOT/mpi [pitfall: some 
> applications need a -V to be added in the lines woth "qrsh", i.e. "qrsh 
> -inherit -V ..." to send all environment variables to the slaves])
> 
> - what is your setting of qrsh_daemon/qrsh_command in `qconf -sconf`? This 
> will then be used finally to reach the node and should be builtin or point to 
> the SGE supplied rsh/rshd (no rshd necessary to install, no rshd is running 
> all the time, no rshd will be started by xinet.d or alike)
> 
> - like you do already: switch off the built-in SGE starter in your mpiexec 
> call: -mca plm_rsh_disable_qrsh 1
> 
> -- Reuti
> 
> PS: To avoid misunderstandings: you could also set "–mca plm_rsh_agent 
> foobar" and in $SGE_ROOT/mpi/startmpi.sh you change it to create a symbolic 
> link called "foobar " in $TMPDIR. It's just a name at this stage of startup.
> 
> 
> > Ed
> >
> >
> > NAME
> >      sg - execute command as different group ID
> >
> > SYNOPSIS
> >      sg [-] [group [-c ] command]
> >
> > DESCRIPTION
> >      The sg command works similar to newgrp but accepts a command. The
> >      command will be executed with the /bin/sh shell. With most shells you
> >      may run sg from, you need to enclose multi-word commands in quotes.
> >      Another difference between newgrp and sg is that some shells treat
> >      newgrp specially, replacing themselves with a new instance of a shell
> >      that newgrp creates. This doesn't happen with sg, so upon exit from a
> >      sg command you are returned to your previous group ID.
> >
> >
> >
> >
> > -----Original Message-----
> > From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On 
> > Behalf Of Ralph Castain
> > Sent: Wednesday, September 14, 2011 11:33 AM
> > To: Open MPI Users
> > Subject: Re: [OMPI users] EXTERNAL: Re: Can you set the gid of the 
> > processes created by mpirun?
> >
> >
> > On Sep 14, 2011, at 9:39 AM, Blosch, Edwin L wrote:
> >
> >> Thanks, Ralph,
> >>
> >> I get the failure messages, unfortunately:
> >>
> >> setgid FAILED
> >> setgid FAILED
> >> setgid FAILED
> >>
> >> I actually had attempted to call setgid from within the application 
> >> previously, which looks similar to what you've done, but it failed. That 
> >> was when I initiated the post to the mailing list. My conclusion, a guess 
> >> really, was that Linux would not let me setgid from within my program 
> >> because I was not root.
> >
> > I was afraid of that - the documentation seemed to indicate that would be 
> > the case, but I figured it was worth a quick try. Sorry I can't be of help.
> >
> >
> >>
> >>
> >> -----Original Message-----
> >> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On 
> >> Behalf Of Ralph Castain
> >> Sent: Wednesday, September 14, 2011 8:15 AM
> >> To: Open MPI Users
> >> Subject: Re: [OMPI users] EXTERNAL: Re: Can you set the gid of the 
> >> processes created by mpirun?
> >>
> >> The attached should set the gid of the remote daemons (and their children) 
> >> to the gid of mpirun. No cmd line option or anything is required - it will 
> >> just always do it.
> >>
> >> Would you mind giving it a try?
> >>
> >> Please let me know if/how it works.
> >>
> >> _______________________________________________
> >> users mailing list
> >> us...@open-mpi.org
> >> http://www.open-mpi.org/mailman/listinfo.cgi/users
> >
> >
> > _______________________________________________
> > users mailing list
> > us...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> > _______________________________________________
> > users mailing list
> > us...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> 
> 
> -- 
> Randall Svancara
> http://knowyourlinux.com/
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>  
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to