setgid , setrgid , setegid , setregid 或 setgidx 子例程
用途
设置进程组标识。
库
标准 C 库 (libc.a)
语法
描述
setgid, setrgid, setegid, setregid和 setgidx 子例程设置调用进程的进程组标识。 支持以下语义:
项 | 描述 |
---|---|
setgid | 如果进程的有效用户标识是 root 用户,那么该进程的实际,有效和已保存的组标识将设置为 GID 参数的值。 否则,如果 GID 参数等于当前实际组标识或已保存的组标识或其一个补充组标识,那么将重置进程有效组标识。 不更改调用进程的补充组标识。 |
setegid | 如果满足下列其中一个条件,那么将重置进程有效组标识:
|
setrgid | 始终返回 EPERM 错误代码。 |
setregid | RGID 和 EGID 参数可以具有下列其中一个关系:
|
setgidx | 哪些 参数可以具有下列其中一个值:
|
setegid, setrgid, setregid和 setgidx 子例程是线程安全的。
操作系统不支持 setuid (setuid , setruid , seteuid , setreuid 或 setuidx 子例程) 或 setgid shell 脚本。
这些子例程是基本操作系统 (BOS) 运行时的一部分。
参数
项 | 描述 |
---|---|
GID | 指定要设置的组标识的值。 |
rgid | 指定要设置的实际组标识的值。 |
egid | 指定要设置的有效组标识的值。 |
which | 指定要设置的组标识值。 |
返回值
项 | 描述 |
---|---|
重大安全事件数量 | 指示子例程已成功。 |
-1 | 指示子例程失败。 设置了 errno 全局变量以指示错误。 |
错误代码
如果 setgid, setegid或 setgidx 子例程失败,那么将返回以下一项或多项:
项 | 描述 |
---|---|
EPERM | 指示进程没有相应的特权,并且 GID 或 EGID 参数不等于进程的实际组标识或已保存的组标识。 |
EINVAL | 指示 GID, EGID 或 哪一个 参数的值无效。 |