PHP Conference Japan 2024

posix_setgid

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

posix_setgidSetzt die Gruppen-ID des aktuellen Prozesses

Beschreibung

posix_setgid(int $group_id): bool

Setzt die reale Gruppen-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, die entsprechende Berechtigungen (normalerweise root) auf dem System benötigt, damit sie ausgeführt werden kann. Die sachgemäße Reihenfolge der Funktionsaufrufe ist zuerst posix_setgid() und zuletzt posix_setuid().

Hinweis:

Falls die Funktion von einem Superuser aufgerufen wurde, setzt sie auch die effektive Gruppen-ID.

Parameter-Liste

group_id

Die Gruppen-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 posix_setgid()-Beispiel

Dieses Beispiel gibt die effektive Gruppen-ID aus, nachdem sie geändert wurde.

<?php
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
posix_setgid(40);
echo
'Meine reale Gruppen-ID ist '.posix_getgid(); //20
echo 'Meine effektive Gruppen-ID ist '.posix_getegid(); //40
?>

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getgid() - Liefert die reale Gruppen-ID des aktuellen Prozesses

add a note

User Contributed Notes 1 note

up
1
jac
13 years ago
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";
?>
To Top