posix_setgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setgid设置当前进程的 GID

描述

posix_setgid(int $group_id): bool

设置当前进程的真实组 ID。这是一个特权函数,需要系统上的适当特权(通常是 root)才能执行此函数。函数调用的正确顺序是先调用 posix_setgid(),最后调用 posix_setuid()

注意:

如果调用者是超级用户,这也会设置有效组 ID。

参数

group_id

组 ID。

返回值

成功时返回 true,失败时返回 false

示例

示例 #1 posix_setgid() 示例

此示例将打印出有效组 ID,一旦它被更改。

<?php
echo '我的真实组 ID 是 '.posix_getgid(); //20
posix_setgid(40);
echo
'我的真实组 ID 是 '.posix_getgid(); //40
echo '我的有效组 ID 是 '.posix_getegid(); //40
?>

参见

添加注释

用户贡献的注释 1 个注释

jac
13 年前
如果你要使用它以及 posix_setuid,确保你首先调用 posix_setgid

<?php
define
(PROC_USER, 'john');
define (PROC_GRP, 'admins');
?>

以下有效

<?php
$user
= posix_getpwnam( PROC_USER );
$group = posix_getgrnam( PROC_GRP);

echo
posix_getuid()."\n";
echo
posix_getgid()."\n";

posix_setgid($group['gid']);
posix_setuid($user['uid']);

echo
posix_getuid()."\n";
echo
posix_getgid()."\n";
?>

以下将不会设置 gid

<?php
$user
= posix_getpwnam( PROC_USER );
$group = posix_getgrnam( PROC_GRP);

echo
posix_getuid()."\n";
echo
posix_getgid()."\n";

posix_setuid($user['uid']);
posix_setgid($group['gid']);

echo
posix_getuid()."\n";
echo
posix_getgid()."\n";
?>
To Top