Signatur
Beschreibung
posix_getgid() liefert die reale Gruppen-ID (Real Group ID, GID) des aktuellen Prozesses als vorzeichenlose Ganzzahl zurück. Die reale GID ist die primäre Gruppe des Benutzers, unter dem der Prozess gestartet wurde – im Gegensatz zur effektiven GID, die durch posix_getegid() abgefragt werden kann.
Die Funktion ist typischerweise in CLI-Skripten und Systemadministrations-Werkzeugen nützlich, wenn überprüft werden soll, mit welchen Gruppenrechten ein PHP-Prozess läuft. Auf Unix-ähnlichen Systemen (Linux, macOS, BSD) steuert die GID unter anderem den Zugriff auf Dateien und Verzeichnisse.
Die Funktion erfordert die POSIX-Erweiterung, die auf Windows-Systemen nicht verfügbar ist. Im Web-Kontext läuft PHP üblicherweise unter dem Benutzer des Webservers (z. B. www-data), sodass die zurückgegebene GID die Gruppe dieses Systembenutzers widerspiegelt.
Rückgabewert
0 für die Gruppe root).Beispiele
Reale GID des aktuellen Prozesses ausgeben
<?php
$gid = posix_getgid();
echo "Reale GID des Prozesses: " . $gid . PHP_EOL;
// GID in einen Gruppennamen auflösen
$groupInfo = posix_getgrgid($gid);
if ($groupInfo !== false) {
echo "Gruppenname: " . $groupInfo['name'] . PHP_EOL;
} else {
echo "Gruppe nicht gefunden." . PHP_EOL;
}
Prüfen, ob der Prozess als root-Gruppe läuft
<?php
if (posix_getgid() === 0) {
echo "Warnung: Prozess läuft mit root-Gruppenrechten!" . PHP_EOL;
} else {
$gid = posix_getgid();
$group = posix_getgrgid($gid);
echo "Prozess läuft unter Gruppe: " . ($group['name'] ?? $gid) . PHP_EOL;
}
// Wichtig · Fallstricke
Plattform: posix_getgid() ist ausschließlich auf POSIX-kompatiblen Systemen (Linux, macOS, BSD) verfügbar. Unter Windows steht die POSIX-Erweiterung standardmäßig nicht zur Verfügung; ein Aufruf führt dort zu einem fatalen Fehler.
Reale vs. effektive GID: Zu beachten ist der Unterschied zwischen der realen GID (dieser Funktion) und der effektiven GID (posix_getegid()). Bei Prozessen mit gesetztem SGID-Bit können diese voneinander abweichen.
Um die GID in einen lesbaren Gruppennamen umzuwandeln, empfiehlt sich der Einsatz von posix_getgrgid().