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_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";
?>
following will not set 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";
?>posix_setgid
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
posix_setgid
Референца за `function.posix-setgid.php` со подобрена типографија и навигација.
posix_setgid
(PHP 4, PHP 5, PHP 7, PHP 8)
posix_setgid — Постави го GID на тековниот процес
= NULL
Постави ја реалната групна ID на тековниот процес. Ова е привилегирана функција и бара соодветни привилегии (обично root) на системот за да може да ја изврши оваа функција. Соодветниот редослед на повици на функции е posix_setgid() прво, posix_setuid() last.
Забелешка:
Ако повикувачот е суперкорисник, ова исто така ќе ја постави ефективната групна ID.
Параметри
group_id-
Групниот ID.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 posix_setgid() example
Овој пример ќе ја испечати ефективната групна ID, откако ќе се смени.
<?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() - Добива сопственик на датотека
- posix_getgid() - Врати ја реалната групна ID на тековниот процес