/usr/bin/newgrp [-| -l] [group]
newgrp [argument]
*newgrp [argument]
+newgrp [argument]
newgrp 命令通过更改用户真实有效的组 ID,将用户登录到新组。用户保留登录状态,当前目录不变。执行 newgrp 时始终会将当前 shell 替换成新的 shell,即使命令因为错误而终止时也是如此(未知组)。
任何未导出的变量都会重置为空或其缺省值。导出的变量保留其值。系统变量(如 PS1、PS2、PATH、MAIL 和 HOME)会重置为缺省值,但系统或用户已导出的系统变量不会重置。例如,当用户的主提示字符串 (PS1) 不是 $(缺省设置),并且未导出 PS1 时,用户的 PS1 会设置为缺省的提示字符串 $,即使 newgrp 因为错误终止时也是如此。请注意,shell 命令 export(请参见 sh(1) 和 set(1))是用于导出变量的方法,以便在调用新 shell 时这些变量可以保留其已有的赋值。
不使用操作数和选项时,newgrp 会将用户真实有效的组 ID 恢复为在用户的口令文件条目中指定的组。这是消除早期 newgrp 命令影响的一种方式。
如果组有口令,并且 /etc/group 中未将用户列为该组的成员,则需要提供口令。为组创建口令的唯一方法是使用 passwd(1),然后将口令从 /etc/shadow 剪切并粘贴到 /etc/group。组口令已废弃,不会经常使用。
等效于 exec newgrp argument,其中 argument 表示 newgrp 命令的选项和/或操作数。
等效于 exec /bin/newgrp argument,其中 argument 表示 newgrp 命令的选项和/或操作数。
本手册页中,前面带有一个或两个 *(星号)的 ksh88(1) 命令会通过以下方式进行特殊处理:
命令完成时,该命令前面的变量赋值列表仍然有效。
在变量赋值之后处理 I/O 重定向。
脚本中包含的错误会导致其中止。
如果字的后面是前面加有 ** 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 = 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。
等效于 exec /bin/newgrp argument,其中 argument 表示 newgrp 命令的选项和/或操作数。
在此手册页上,前面带一个或两个 +(加号)的 ksh(1) 命令会通过以下方式进行特殊处理:
命令完成时,该命令前面的变量赋值列表仍然有效。
在变量赋值之后处理 I/O 重定向。
脚本中包含的错误会导致其中止。
它们不是有效的函数名称。
如果字的后面是前面加有 ++ 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这意味着将在 = 符号之后执行波浪号替换,并且不执行字段分割和文件名生成。
支持以下选项:
将环境更改为用户以新组成员身份实际重新登录时应有的环境。
支持下列操作数:
组数据库中的组名称,或者非负数字组 ID。指定要将真实有效的组 ID 设置成的组 ID。如果 group 是一个非负数字字符串,并且以组名称的形式存在于组数据库中(请参见 getgrnam(3C)),则使用与该组名称关联的数字组 ID 作为组 ID。
仅限 sh 和 ksh88。newgrp 命令的选项和/或操作数。
有关影响 newgrp 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
如果 newgrp 成功创建了新的 shell 执行环境,那么,不管是否成功更改了组标识,退出状态都是 shell 的退出状态。否则,返回以下退出值:
出现错误。
系统组文件
系统口令文件
有关下列属性的说明,请参见 attributes(5):
|
|
login(1)、ksh(1)、ksh88(1)、set(1)、sh(1)、Intro(3)、getgrnam(3C)、group(4)、passwd(4)、attributes(5)、environ(5)、standards(5)