id(1p) - phpMan

ID(1P)                     POSIX Programmer's Manual                    ID(1P)

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the  corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.
NAME
       id - return user identity
SYNOPSIS
       id [user]
       id -G[-n] [user]
       id -g[-nr] [user]
       id -u[-nr] [user]

DESCRIPTION
       If no user operand is provided, the id utility shall write the user and
       group  IDs  and  the corresponding user and group names of the invoking
       process to standard output. If the effective and real IDs do not match,
       both shall be written. If multiple groups are supported by the underly-
       ing system (see the description of {NGROUPS_MAX} in the  System  Inter-
       faces volume of IEEE Std 1003.1-2001), the supplementary group affilia-
       tions of the invoking process shall also be written.
       If a user operand is provided and the process has the appropriate priv-
       ileges,  the  user and group IDs of the selected user shall be written.
       In this case, effective IDs shall be assumed to be  identical  to  real
       IDs.  If the selected user has more than one allowable group membership
       listed in the group database, these shall be written in the same manner
       as the supplementary groups described in the preceding paragraph.
OPTIONS
       The  id  utility  shall  conform  to  the  Base  Definitions  volume of
       IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
       The following options shall be supported:
       -G     Output all different group IDs (effective, real, and  supplemen-
              tary)  only, using the format "%u\n" . If there is more than one
              distinct group affiliation, output each such affiliation,  using
              the format " %u", before the <newline> is output.
       -g     Output only the effective group ID, using the format "%u\n" .
       -n     Output  the  name  in  the format "%s" instead of the numeric ID
              using the format "%u" .
       -r     Output the real ID instead of the effective ID.
       -u     Output only the effective user ID, using the format "%u\n" .

OPERANDS
       The following operand shall be supported:
       user   The login name for which information is to be written.

STDIN
       Not used.
INPUT FILES
       None.
ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of id:
       LANG   Provide a default value for the  internationalization  variables
              that  are  unset  or  null.  (See the Base Definitions volume of
              IEEE Std 1003.1-2001, Section  8.2,  Internationalization  Vari-
              ables  for the precedence of internationalization variables used
              to determine the values of locale categories.)
       LC_ALL If set to a non-empty string value, override the values  of  all
              the other internationalization variables.
       LC_CTYPE
              Determine  the  locale  for  the  interpretation of sequences of
              bytes of text data as characters (for  example,  single-byte  as
              opposed to multi-byte characters in arguments).
       LC_MESSAGES
              Determine  the  locale  that should be used to affect the format
              and contents of diagnostic messages written  to  standard  error
              and informative messages written to standard output.
       NLSPATH
              Determine the location of message catalogs for the processing of
              LC_MESSAGES .

ASYNCHRONOUS EVENTS
       Default.
STDOUT
       The following formats shall be used when the LC_MESSAGES  locale  cate-
       gory  specifies  the  POSIX  locale. In other locales, the strings uid,
       gid, euid, egid, and groups  may  be  replaced  with  more  appropriate
       strings corresponding to the locale.

              "uid=%u(%s) gid=%u(%s)\n", <real user ID>, <user-name>,
                  <real group ID>, <group-name>
       If the effective and real user IDs do not match, the following shall be
       inserted immediately before the '\n' character in the previous format:

              " euid=%u(%s)"
       with the following arguments added at the end of the argument list:

              <effective user ID>, <effective user-name>
       If the effective and real group IDs do not match, the  following  shall
       be  inserted  directly  before  the '\n' character in the format string
       (and after any addition resulting from the effective and real user  IDs
       not matching):

              " egid=%u(%s)"
       with the following arguments added at the end of the argument list:

              <effective group-ID>, <effective group name>
       If  the  process  has  supplementary group affiliations or the selected
       user is allowed to belong to multiple groups, the first shall be  added
       directly before the <newline> in the format string:

              " groups=%u(%s)"
       with the following arguments added at the end of the argument list:

              <supplementary group ID>, <supplementary group name>
       and  the  necessary  number  of  the following added after that for any
       remaining supplementary group IDs:

              ",%u(%s)"
       and the necessary number of the following arguments added at the end of
       the argument list:

              <supplementary group ID>, <supplementary group name>
       If any of the user ID, group ID, effective user ID, effective group ID,
       or supplementary/multiple group IDs cannot be mapped by the system into
       printable  user or group names, the corresponding "(%s)" and name argu-
       ment shall be omitted from the corresponding format string.
       When any of the options are specified, the output format  shall  be  as
       described in the OPTIONS section.
STDERR
       The standard error shall be used only for diagnostic messages.
OUTPUT FILES
       None.
EXTENDED DESCRIPTION
       None.
EXIT STATUS
       The following exit values shall be returned:
        0     Successful completion.
       >0     An error occurred.

CONSEQUENCES OF ERRORS
       Default.
       The following sections are informative.
APPLICATION USAGE
       Output  produced  by the -G option and by the default case could poten-
       tially produce very long lines on systems that support large numbers of
       supplementary  groups.  (On  systems  with  user and group IDs that are
       32-bit integers and with group names with a  maximum  of  8  bytes  per
       name,  93  supplementary  groups plus distinct effective and real group
       and user IDs could theoretically overflow the 2048-byte {LINE_MAX} text
       file  line  limit  on  the default output case. It would take about 186
       supplementary groups to overflow the 2048-byte barrier  using  id  -G).
       This is not expected to be a problem in practice, but in cases where it
       is a concern, applications should consider using fold -s  before  post-
       processing the output of id.
EXAMPLES
       None.
RATIONALE
       The functionality provided by the 4 BSD groups utility can be simulated
       using:

              id -Gn [ user ]
       The 4 BSD command groups  was  considered,  but  it  was  not  included
       because  it  did not provide the functionality of the id utility of the
       SVID. Also, it was thought that it would be easier to modify id to pro-
       vide  the  additional  functionality necessary to systems with multiple
       groups than to invent another command.
       The options -u, -g, -n, and -r were added to ease the use  of  id  with
       shell  commands  substitution. Without these options it is necessary to
       use some preprocessor such as sed to select the desired piece of infor-
       mation. Since output such as that produced by:

              id -u -n
       is frequently wanted, it seemed desirable to add the options.
FUTURE DIRECTIONS
       None.
SEE ALSO
       fold,    logname,    who,    the    System    Interfaces    volume   of
       IEEE Std 1003.1-2001, getgid(), getgroups(), getuid()
COPYRIGHT
       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group                  2003                               ID(1P)