Signatur
Beschreibung
posix_getegid() liefert die effektive Gruppen-ID (Effective Group ID, EGID) des laufenden PHP-Prozesses. Die effektive GID bestimmt, welche Zugriffsrechte der Prozess auf Dateien und andere Ressourcen hat, und kann sich von der realen Gruppen-ID unterscheiden, wenn zum Beispiel ein Prozess mit gesetztem SGID-Bit gestartet wurde.
Die Funktion ist typischerweise in CLI-Skripten, Daemon-Prozessen oder Systemwerkzeugen nützlich, wenn geprüft werden soll, unter welcher Gruppe ein Skript gerade ausgeführt wird – etwa um sicherzustellen, dass bestimmte Systemressourcen zugänglich sind oder um Berechtigungsprobleme zu diagnostizieren.
Um die reale Gruppen-ID zu ermitteln (also die, mit der der Prozess ursprünglich gestartet wurde), kann posix_getgid() verwendet werden. Die Funktion steht nur auf POSIX-kompatiblen Systemen (Linux, macOS, BSD etc.) zur Verfügung und ist unter Windows nicht verfügbar.
Rückgabewert
Beispiele
Effektive Gruppen-ID ausgeben
<?php
$egid = posix_getegid();
echo "Effektive Gruppen-ID: " . $egid . PHP_EOL;
// Zusatzinfo: Gruppenname per posix_getgrgid ermitteln
$groupInfo = posix_getgrgid($egid);
echo "Gruppenname: " . ($groupInfo['name'] ?? 'unbekannt') . PHP_EOL;
Vergleich von realer und effektiver Gruppen-ID
<?php
$gid = posix_getgid(); // Reale GID
$egid = posix_getegid(); // Effektive GID
echo "Reale Gruppen-ID: " . $gid . PHP_EOL;
echo "Effektive Gruppen-ID: " . $egid . PHP_EOL;
if ($gid !== $egid) {
echo "Hinweis: Der Prozess läuft mit einer abweichenden effektiven Gruppe." . PHP_EOL;
} else {
echo "Reale und effektive Gruppe sind identisch." . PHP_EOL;
}
// Wichtig · Fallstricke
Plattformeinschränkung: posix_getegid() ist nur auf POSIX-kompatiblen Betriebssystemen verfügbar (Linux, macOS, BSD). Unter Windows ist die Funktion nicht definiert und führt zu einem fatalen Fehler, sofern die POSIX-Erweiterung nicht aktiviert ist.
Die POSIX-Erweiterung muss beim Kompilieren von PHP eingebunden sein (sie ist standardmäßig auf den meisten Unix-Systemen aktiv). Fehlt sie, steht die Funktion nicht zur Verfügung. Dies kann mit extension_loaded('posix') geprüft werden.