Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

chroot - Root-Verzeichnis ändern

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

int chroot(const char *path);

Beschreibung

path zeigt auf einen Pfadnamen, der ein Dateiverzeichnis bezeichnet. Die Funktion chroot() bewirkt, dass das bezeichnete Dateiverzeichnis zum Root-Verzeichnis wird, dem Anfangspunkt für alle Pfadnamen, die mit dem Zeichen ’/’ beginnen. Das aktuelle Dateiverzeichnis des Benutzers wird durch chroot() nicht beeinflusst.

Der Prozess muss Sonderrechte haben, um das Root-Verzeichnis ändern zu können. Der Eintrag .. im Root-Verzeichnis wird so interpretiert, dass er das Root-Verzeichnis selbst bedeutet. Daher kann .. nicht dazu verwendet werden, auf Dateien außerhalb des beim Root-Verzeichnis beginnenden Unterbaums zuzugreifen.

chroot() ist nicht reentrant.

Returnwert

0

bei Erfolg.

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

chroot() schlägt fehl, wenn gilt:


EACCES

Für eine Komponente von path existiert kein Durchsuchrecht.


Erweiterung


EFAULT

Es wurde eine ungültige Adresse als Argument übergeben.


EINTR

Ein Signal wurde während des Systemaufrufs chroot() abgefangen.


ELOOP

Während der Übersetzung von path waren zu viele symbolische Verweise vorhanden. (Ende)


ENAMETOOLONG



Die Länge des Arguments path überschreitet {PATH_MAX}, oder eine Pfadnamen-Komponente ist länger als {NAME_MAX}.


ENOENT

path zeigt auf den Namen eines Dateiverzeichnisses, das nicht existiert oder auf die leere Zeichenkette.


ENOTDIR

Eine Komponente des Pfadnamens path ist kein Dateiverzeichnis.


EPERM

Die effektive Benutzernummer ist nicht die eines Prozesses mit Sonderrechten.

Hinweise

chroot() wird nur für POSIX-Dateiverzeichnisse ausgeführt.
chroot() wirkt nur im jeweils aktiven Prozess und nur bis zur Beendigung des Prozesses.

Siehe auch

chdir(), unistd.h.