setgroups [ - ] [ -a GroupSet ] [ -d GroupSet ] [ -r [ Group ] ] [ GroupSet ]
缺省情况下,setgroups 命令为当前 shell 显示用户当前组集和进程组集。用户数据库文件定义用户组集。当给定标志和 GroupSet 参数时,该命令会重新设置 GroupSet 参数列出的进程组集。GroupSet 参数是一个逗号分隔的组名列表。用户数据库文件中定义了可用的组。
您也可以使用 setgroups 命令从当前组集中添加或删除组。使用 -r 标志,您能重新设置实际组标识。如果指定了 Groupset 参数但没有指定标志,则 setgroups 命令重新设置所有的组并且把第一组放在实际组列表中。setgroups 命令不更改控制终端的安全性特征。
当运行 setgroups 命令时,系统始终用新的 shell 代替旧的 shell。不管命令是否成功,该命令都会替换 shell。因此,命令不会返回错误代码。
setgroups -r 命令和 newgrp 命令相同。
存取控制:此命令是常规用户程序。该命令应该作为程序安装在“可信计算库”(TCB)中。带有 setuid(SUID)位集的 root 用户应该拥有此命令。
文件存取:
方式 | 文件 |
---|---|
r | /etc/passwd |
r | /etc/group |
审计事件:
事件 | 信息 |
USER_SetGroups | realgroup, groupset |
setgroups
出现与以下内容类似的输出:
sah: user groups = staff,payroll process groups = staff,payroll
setgroups finance、staff、payroll
这样就把 finance 设置为实际组。staff 与 payroll 组构成补充组列表。
/usr/bin/setgroups | 包含 setgroups 命令。 |
/etc/group | 包含基本组属性。 |
/etc/passwd | 包含基本用户属性。 |
login 命令、newgrp 命令、setsenv 命令、tsm 命令。