chroot(2) chroot(2)
NAME
chroot - Root-Verzeichnis ändern
SYNTAX
#include <unistd.h>
int chroot(const char *path);
BESCHREIBUNG
path weist auf einen Pfadnamen, der ein Verzeichnis benennt. chroot()
bewirkt, daß das angegebene Verzeichnis zum Root-Verzeichnis wird,
d. h. zum Ausgangspunkt für die Pfadsuche nach Pfadnamen, die mit /
beginnen. Das aktuelle Verzeichnis des Prozesses wird durch den
Systemaufruf chroot() nicht beeinflußt. Die effektive Benutzer-ID des
Prozesses muß die des Systemverwalters sein, damit das Root-Verzeich-
nis geändert werden kann.
Der Eintrag ".." im Root-Verzeichnis wird so verstanden, daß es sich
um das Root-Verzeichnis selbst handelt. Daher kann ".." nicht für den
Zugriff auf Dateien außerhalb des Unterbaums verwendet werden, dessen
Wurzel das Root-Verzeichnis ist.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
chroot() ist erfolglos, und das Root-Verzeichnis bleibt unverändert,
wenn einer oder mehrere der nachstehenden Punkte zutreffen:
ELOOP Während der Auflösung von path wurden zu viele symboli-
sche Links angetroffen.
ENAMETOOLONG Die Länge des Arguments path ist größer als PATHMAX
oder NAMEMAX.
ENAMETOOLONG Die Auflösung des Pfadnamens eines symbolischen Links
hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
überschreitet.
EFAULT path weist über den zugewiesenen Adreßraum des Prozesses
hinaus.
EINTR Ein Signal wurde während des Systemaufrufs chroot()
abgefangen.
EMULTIHOP Die Komponenten von path erfordern den Sprung auf ferne
Rechner.
ENOLINK path weist auf einen fernen Rechner, und die Verbindung
zu diesem Rechner ist nicht mehr aktiv.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
chroot(2) chroot(2)
ENOTDIR Eine Komponente des Pfadnamens ist kein Verzeichnis.
ENOENT Das angegebene Verzeichnis existiert nicht.
EPERM Die effektive Benutzer-ID entspricht nicht der des
Systemverwalters.
ERGEBNIS
Nach erfolgreicher Beendigung wird 0 zurückgegeben. Andernfalls wird
-1 zurückgegeben, und errno wird zur Anzeige des Fehlers gesetzt.
SIEHE AUCH
chdir(2), unistd(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98