unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

issetugid(2)                     System Calls                     issetugid(2)



NAME
       issetugid - determine if current executable is running setuid or setgid

SYNOPSIS
       #include <&lt;unistd.h>&gt;

       int issetugid(void);

DESCRIPTION
       The  issetugid()  function  enables  library  functions (in libtermlib,
       libc, or other libraries) to  guarantee  safe  behavior  when  used  in
       setuid  or  setgid  programs  or programs that run with more privileges
       after a succesful exec(2).  Some  library  functions  might  be  passed
       insufficient  information  and not know whether the current program was
       started setuid or setgid because a higher level calling code might have
       made  changes  to  the uid, euid, gid, or egid. These low-level library
       functions are therefore unable to determine if they are being run  with
       elevated or normal privileges.

       The  issetugid()  function  should  be used to determine if a path name
       returned from a getenv(3C) call can be used safely to open  the  speci-
       fied  file. It is often not safe to open such a file because the status
       of the effective uid is not known.

       The result of a call to issetugid() is unaffected by calls to setuid(),
       setgid(), or other such calls.  In case of a call to fork(2), the child
       process inherits the same status.

       The status of issetugid() is affected only by execve()  (see  exec(2)).
       If  a  child  process executes a new executable file, a new issetugid()
       status will be based on the existing process's uid, euid, gid, and egid
       permissions  and  on  the modes of the executable file. If the new exe-
       cutable file modes are setuid or setgid, or if the existing process  is
       executing the new image with uid != euid or gid != egid, or if the per-
       mitted set before the call to the exec function is not  a  superset  of
       the  inheritable  set  at  that  time, issetugid() returns 1 in the new
       process.

RETURN VALUES
       The issetugid() function returns 1 if the process was  made  setuid  or
       setgid as the result of the last or a previous call to execve(). Other-
       wise it returns 0.

ERRORS
       The issetugid() function is  always  successful.  No  return  value  is
       reserved to indicate an error.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityEvolv-
       ing MT-LevelAsync-Signal-Safe


SEE ALSO
       exec(2), fork(2), setuid(2), getenv(3C), attributes(5), privileges(5)



SunOS 5.10                        19 Feb 2003                     issetugid(2)