Start · Sprachen · PHP · Referenz · posix_getegid

posix_getegid

Funktion

Gibt die effektive Gruppen-ID (EGID) des aktuellen PHP-Prozesses zurück.

seit PHP 4.0.0 Kategorie: misc

Signatur

posix_getegid(): int

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

Typ
int
Beschreibung
Gibt die effektive Gruppen-ID (EGID) des aktuellen Prozesses als ganzzahligen Wert zurück.

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;
Effektive Gruppen-ID: 33 Gruppenname: www-data

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;
}
Reale Gruppen-ID: 1000 Effektive Gruppen-ID: 1000 Reale und effektive Gruppe sind identisch.

// 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.