Man Pages

newgrp(1p) - phpMan newgrp(1p) - phpMan

Command: man perldoc info search(apropos)  


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



PROLOG
       This manual page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may dif-
       fer (consult the corresponding Linux manual page for details of Linux behavior), or the interface  may  not  be
       implemented on Linux.

NAME
       newgrp - change to a new group

SYNOPSIS
       newgrp [-l][group]

DESCRIPTION
       The newgrp utility shall create a new shell execution environment with a new real and effective group identifi-
       cation. Of the attributes listed in Shell Execution Environment, the  new  shell  execution  environment  shall
       retain  the  working  directory, file creation mask, and exported variables from the previous environment (that
       is, open files, traps, unexported variables, alias definitions, shell functions, and set options may be  lost).
       All  other aspects of the process environment that are preserved by the exec family of functions defined in the
       System Interfaces volume of IEEE Std 1003.1-2001 shall also be preserved by newgrp; whether other  aspects  are
       preserved is unspecified.

       A failure to assign the new group identifications (for example, for security or password-related reasons) shall
       not prevent the new shell execution environment from being created.

       The newgrp utility shall affect the supplemental groups for the process as follows:

        * On systems where the effective group ID is normally in the supplementary group list  (or  whenever  the  old
          effective group ID actually is in the supplementary group list):

           * If  the new effective group ID is also in the supplementary group list, newgrp shall change the effective
             group ID.


           * If the new effective group ID is not in the supplementary group list, newgrp shall add the new  effective
             group ID to the list, if there is room to add it.



        * On systems where the effective group ID is not normally in the supplementary group list (or whenever the old
          effective group ID is not in the supplementary group list):

           * If the new effective group ID is in the supplementary group list, newgrp shall delete it.


           * If the old effective group ID is not in the supplementary list, newgrp shall add it if there is room.



       Note:  The System Interfaces volume of IEEE Std 1003.1-2001 does not specify whether the effective group ID  of
              a process is included in its supplementary group list.


       With  no  operands,  newgrp  shall  change the effective group back to the groups identified in the user's user
       entry, and shall set the list of supplementary groups to that set in the user's group database entries.

       If a password is required for the specified group, and the user is not listed as a member of that group in  the
       group  database, the user shall be prompted to enter the correct password for that group. If the user is listed
       as a member of that group, no password shall be requested. If no password is required for the specified  group,
       it  is  implementation-defined  whether  users  not  listed  as members of that group can change to that group.
       Whether or not a password is required, implementation-defined system  accounting  or  security  mechanisms  may
       impose  additional  authorization restrictions that may cause newgrp to write a diagnostic message and suppress
       the changing of the group identification.

OPTIONS
       The newgrp utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2,  Utility
       Syntax Guidelines.

       The following option shall be supported:

       -l     (The letter ell.) Change the environment to what would be expected if the user actually logged in again.


OPERANDS
       The following operand shall be supported:

       group  A group name from the group database or a non-negative numeric group ID. Specifies the group ID to which
              the  real  and effective group IDs shall be set. If group is a non-negative numeric string and exists in
              the group database as a group name (see getgrnam()), the numeric group ID  associated  with  that  group
              name shall be used as the group ID.


STDIN
       Not used.

INPUT FILES
       The file /dev/tty shall be used to read a single line of text for password checking, when one is required.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of newgrp:

       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 Variables for  the  prece-
              dence 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  exam-
              ple, 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 writ-
              ten to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .


ASYNCHRONOUS EVENTS
       Default.

STDOUT
       Not used.

STDERR
       The standard error shall be used for diagnostic messages and  a  prompt  string  for  a  password,  if  one  is
       required.  Diagnostic  messages  may  be written in cases where the exit status is not available.  See the EXIT
       STATUS section.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       If newgrp succeeds in creating a new shell execution environment, whether or not the group  identification  was
       changed  successfully,  the  exit  status shall be the exit status of the shell.  Otherwise, the following exit
       value shall be returned:

       >0     An error occurred.


CONSEQUENCES OF ERRORS
       The invoking shell may terminate.

       The following sections are informative.

APPLICATION USAGE
       There is no convenient way to enter a password into the group database.  Use of group passwords is not  encour-
       aged, because by their very nature they encourage poor security practices. Group passwords may disappear in the
       future.

       A common implementation of newgrp is that the current shell uses exec to overlay itself with newgrp,  which  in
       turn  overlays  itself  with  a  new shell after changing group. On some implementations, however, this may not
       occur and newgrp may be invoked as a subprocess.

       The newgrp command is intended only for use from an interactive terminal. It does not offer a useful  interface
       for the support of applications.

       The  exit  status of newgrp is generally inapplicable. If newgrp is used in a script, in most cases it success-
       fully invokes a new shell and the rest of the original shell script is bypassed when the new shell exits.  Used
       interactively, newgrp displays diagnostic messages to indicate problems. But usage such as:


              newgrp foo
              echo $?

       is  not  useful  because  the new shell might not have access to any status newgrp may have generated (and most
       historical systems do not provide this status). A zero status echoed here does not  necessarily  indicate  that
       the  user  has  changed to the new group successfully. Following newgrp with the id command provides a portable
       means of determining whether the group change was successful or not.

EXAMPLES
       None.

RATIONALE
       Most historical implementations use one of the exec functions to  implement  the  behavior  of  newgrp.  Errors
       detected  before  the exec leave the environment unchanged, while errors detected after the exec leave the user
       in a changed environment. While it would be useful to have newgrp issue a diagnostic message to tell  the  user
       that  the  environment changed, it would be inappropriate to require this change to some historical implementa-
       tions.

       The password mechanism is allowed in the group database, but how this would be implemented is not specified.

       The newgrp utility was retained in this volume of IEEE Std 1003.1-2001, even given the existence of the  multi-
       ple  group  permissions  feature  in the System Interfaces volume of IEEE Std 1003.1-2001, for several reasons.
       First, in some implementations, the group ownership of a newly created file is determined by the group  of  the
       directory  in which the file is created, as allowed by the System Interfaces volume of IEEE Std 1003.1-2001; on
       other implementations, the group ownership of a newly created file is determined by the effective group ID.  On
       implementations of the latter type, newgrp allows files to be created with a specific group ownership. Finally,
       many implementations use the real group ID in accounting, and on such systems,  newgrp  allows  the  accounting
       identity of the user to be changed.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Shell Command Language, sh, the System Interfaces volume of IEEE Std 1003.1-2001, exec, getgrnam()

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Stan-
       dard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base  Specifica-
       tions  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                           NEWGRP(1P)