文字

posix_setgid

(PHP 4, PHP 5)

posix_setgidSet the GID of the current process

说明

bool posix_setgid ( int $gid )

Set the real group ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Note:

If the caller is a super user, this will also set the effective group id.

参数

gid

The group id.

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

范例

Example #1 posix_setgid() example

This example will print out the effective group id, once it is changed.

<?php
echo  'My real group id is ' . posix_getgid ();  //20
posix_setgid ( 40 );
echo 
'My real group id is ' . posix_getgid ();  //40
echo  'My effective group id is ' . posix_getegid ();  //40
?>

参见

  • posix_getgrgid() - Return info about a group by group id
  • posix_getgid() - Return the real group ID of the current process

用户评论:

[#1] jac [2011-05-26 10:26:24]

if you're going to use this along with posix_setuid, make sure you call posix_setgid first:

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


following works:

<?php
$user 
posix_getpwnamPROC_USER );
$group posix_getgrnamPROC_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";
?>


following will not set gid

<?php
$user 
posix_getpwnamPROC_USER );
$group posix_getgrnamPROC_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";
?>

上一篇: 下一篇: