Hello,

While setting up a split GridFTP server, i.e.,

    o front-end: control channel, runs as non-privileged user

   o back-end: data channel and IPC to front-end, runs as root

I noticed the following limitation of the front-end server.

   When the front-end server runs as non-privileged user, one
   must disable authorization on the front-end server, i.e., set

     -auth-level 0

(Alternatively, one must map all the DNs to the user running the front-end.)


This is because, when doing authorization, the server performs two actions:

    (1) checks the DN against the grid map-file;

    (2) calls setuid()/setgid() to change the real ID to that defined
         in the grid map-file

Now, step (2) is possible only when the process runs as root, or changes to the same ID. Therefore, (2) cannot be done when running the front-end
 as "globus".

There seem to be two solutions to this problem:

   (a) Use sudo instead of setuid(), therefore allowing the user
         globus to change the ID;

  (b) Peform on the front-end only action (1) (check user DN) and
        delegate action (2) to the back end server.

Are these or other solutions considered by the GridFTP team
to allow the front-end server to perform authorization when
running as a non-privileged user?

Thank you.
Gabriel


Reply via email to