PXFSETUID(3F) Last changed: 1-6-98
PXFSETUID - Sets user ID
SUBROUTINE PXFSETUID (iuid, ierror)
INTEGER iuid, ierror
UNICOS, UNICOS/mk, and IRIX systems
IEEE standard interface for FORTRAN 77
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
7.2 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.
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.
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
setuid(2)
PXFGETUID(3F)
Application Programmer's Library Reference Manual, publication SR2165,
for the printed version of this man page.
PXFSETUID(3F) Last changed: 1-6-98
PXFSETUID - Sets user ID
SUBROUTINE PXFSETUID (iuid, ierror)
INTEGER iuid, ierror
UNICOS, UNICOS/mk, and IRIX systems
IEEE standard interface for FORTRAN 77
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
7.2 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.
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.
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
setuid(2)
PXFGETUID(3F)
Application Programmer's Library Reference Manual, publication SR2165,
for the printed version of this man page.
[ Back ]
|