Signatur
Beschreibung
lchgrp() ändert die Gruppenbesitzung eines symbolischen Links. Im Gegensatz zu chgrp() folgt diese Funktion dem symbolischen Link nicht – das heißt, die Gruppe des Links selbst wird geändert, nicht die des Ziels, auf das der Link verweist.
Die Funktion erwartet entweder den Gruppennamen als String oder die numerische Gruppen-ID (GID) als Integer. Auf Systemen, die das POSIX-Systemaufruf lchown nicht unterstützen (z. B. Windows), liefert die Funktion false.
Für den Aufruf sind in der Regel Root-Rechte oder ausreichende Systemprivilegien erforderlich. Sie ist besonders nützlich, wenn symbolische Links selbst verwaltet werden müssen, ohne die verlinkten Dateien zu beeinflussen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename Pflicht | string | Der Pfad zum symbolischen Link, dessen Gruppe geändert werden soll. | |
| $group Pflicht | string|int | Der Gruppenname (String) oder die numerische Gruppen-ID (Integer), der der symbolische Link zugewiesen werden soll. |
Rückgabewert
true zurück, wenn die Gruppe erfolgreich geändert wurde, andernfalls false. Auf Plattformen ohne lchown-Unterstützung (z. B. Windows) wird stets false zurückgegeben.Beispiele
Gruppe eines symbolischen Links ändern
<?php
// Symbolischen Link erstellen
symlink('/var/www/html/target.txt', '/var/www/html/mylink');
// Gruppe des symbolischen Links auf 'www-data' setzen
if (lchgrp('/var/www/html/mylink', 'www-data')) {
echo "Gruppe des symbolischen Links erfolgreich geändert.";
} else {
echo "Fehler beim Ändern der Gruppe.";
}
Gruppe per numerischer GID setzen
<?php
// GID von 'www-data' ist typischerweise 33 auf Debian/Ubuntu-Systemen
$gid = 33;
$link = '/tmp/mylink';
symlink('/tmp/zieldatei.txt', $link);
if (lchgrp($link, $gid)) {
echo "GID des Links wurde auf {$gid} gesetzt.";
} else {
echo "Konnte die Gruppe nicht setzen – ausreichende Rechte vorhanden?";
}
// Wichtig · Fallstricke
Plattformabhängigkeit: lchgrp() ist auf Windows-Systemen nicht verfügbar und gibt dort immer false zurück. Die Funktion ist nur auf POSIX-kompatiblen Betriebssystemen (Linux, macOS, BSD) nutzbar.
Rechte: Typischerweise sind Root-Rechte notwendig, um die Gruppe eines symbolischen Links zu ändern. Gewöhnliche Benutzer können in der Regel nur die Gruppe auf eine Gruppe setzen, der sie selbst angehören.
Unterschied zu chgrp(): chgrp() folgt symbolischen Links und ändert die Gruppe der Zieldatei. lchgrp() hingegen ändert ausschließlich die Gruppe des Links selbst – das ist wichtig bei der Verwaltung von symbolischen Links in sicherheitskritischen Umgebungen.