pxfsetuid(3F)

PXFSETUID - Sets user ID

As shipped in IRIX 6.5.15. Last changed in IRIX 6.5.5.

NAME
     PXFSETUID - Sets user ID

SYNOPSIS
     SUBROUTINE PXFSETUID (iuid, ierror)
     INTEGER iuid, ierror

IMPLEMENTATION
     UNICOS, UNICOS/mk, and IRIX systems

STANDARDS
     IEEE standard interface for FORTRAN 77

DESCRIPTION
     On IRIX systems, this routine is in libfortran.so which is linked by
     default when compiling programs with the MIPSpro 7 Fortran 90 compiler
     or when compiling programs with the -craylibs option to the MIPSpro
     F77 compiler.

     The PXFSETUID routine uses the setuid(2) function to set the real user
     ID, effective user ID, and saved set user IDs of the calling process.
     The following conditions determine the setting of an ID. They are
     checked in the following order, and the first condition that is true
     is applied:

     * If the process has appropriate privilege, the real, effective, and
       saved set user IDs are all set to iuid.

     * If the ID is equal to either the real user ID, the effective user
       ID, or the saved set user, ID is set to iuid.

     When using the CF90 compiler or MIPSpro 7 Fortran 90 compiler on
     UNICOS, UNICOS/mk, or IRIX systems, all arguments must be of default
     kind unless documented otherwise.  On UNICOS and UNICOS/mk, default
     kind is KIND=8 for integer, real, complex, and logical arguments; on
     IRIX, the default kind is KIND=4.

     The following is a list of valid arguments for this routine:

     iuid      An input integer variable used to replace the current user
               ID for the calling process.

     ierror    An output integer variable that contains zero if PXFSETUID
               was successful or nonzero if PXFSETUID was not successful.

     This routine may return EINVAL if the value of the iuid argument is
     out of range.  or EPERM if the process does not have the appropriate
     privileges and if iuid does not match the real user ID.

NOTES
     On a UNICOS multilevel security (MLS) system, a process with the
     effective privileges shown is granted the following abilities:

     Privilege                Description

     PRIV_SETGID              The process may set the real user ID,
                              effective user ID, and saved set-user-ID.

     On a UNICOS non-MLS system or a UNICOS MLS system with PRIV_SU
     enabled, the super user may set the real user ID, effective user ID,
     and saved set-user-ID.

EXAMPLES
     In this example, the current user ID for the current process will be
     obtained by calling PXFGETUID and then seting the user ID for the
     current process using the group ID returned by PXFGETUID.

          program pxftest
          integer iuid, ierror

          CALL PXFGETUID(iuid, ierror)
             if (ierror .eq. 0) then
                CALL PXFSETUID(iuid, ierror)
                if (ierror .eq. 0) then
                   print *,'user id set to ',iuid
                else
                   print *,'user id not set to ',iuid,' because of error'
                endif
             else
                print *,'could not obtain user ID  error = ',ierror
             endif
          end

SEE ALSO
     setuid(2)
     PXFGETUID(3F)

     Application Programmer's Library Reference Manual for the printed
     version of this man page.