(PHP 4, PHP 5, PHP 7, PHP 8)
posix_setgid — Fixe le GID réel du processus courant
Fixe le GID réel du processus courant. C'est une fonction privilégiée et il faut avoir les privilèges appropriés (habituellement root) sur le système pour pouvoir l'exécuter. L'ordre approprié est d'abord posix_setgid(), puis posix_setuid() .
Note:
Si l'appelant est le super-utilisateur, cette fonction définira également l'ID effectif du groupe.
group_idL'ID du groupe.
Exemple #1 Exemple avec posix_setgid()
Cet exemple affichera l'ID effectif du groupe.
<?php
echo 'Mon ID réel de groupe est : '.posix_getgid(); //20
posix_setgid(40);
echo 'Mon ID réel de groupe est : '.posix_getgid(); //40
echo 'Mon ID effectif de groupe est : '.posix_getegid(); //40
?>
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";
?>