chroot(2)

NAAM
chroot - verander root map

BIBLIOTHEEK
Standaard C bibliotheek (libc, -lc)

SAMENVATTING
#include <unistd.h>

int chroot(const char *pad);

    Feature Test Macro Requirements voor glibc (zie feature_test_macros(7)):

chroot():
    Vanaf glibc 2.2.2:
        _XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
            || /* Vanaf glibc 2.20: */ _DEFAULT_SOURCE
            || /* Glibc <= 2.19: */ _BSD_SOURCE
    Voor glibc 2.2.2:
        geen

BESCHRIJVING
chroot() veranderd de root map naar die opgegeven in pad. Deze map zal gebruikt worden voor pad namen die beginnen met /. De root map wordt geërfd door alle kinderen van het huidige proces.

Slechts een geprivilegieerd proces (Linux: een met de CAP_SYS_CHROOT capaciteit in zijn gebruikers naamruimte) mag chroot() aanroepen.

Deze aanroep verandert een ingredient in het resolutie van het padnaam proces en doet niet meer. In het bijzonder is het niet bedoeld om te worden gebruikt voor elk veiligheid doel, noch om een proces in een zandbak te isoleren noch om bestandssysteem systeem aanroepen te beperken. In het verleden werd chroot() gebruikt door daemons om zichzelf te beperken om paden door te geven die werden opgegeven door niet-vertrouwde gebruikers aan systeem aanroepen zoals open(2). Echter is een map wordt verwijderd uit de chroot-map, dan kan een aanvaller dat gebruiken om ook uit de chroot-map te geraken. Een eenvoudige manier om dat te doen is met chdir(2) naar de de-te-verplaatsen map, wachten totdat die verplaatst is en dan een pad zoals ../../../etc/password te openen.

Een iets lastigere variatie werkt ook onder bepaalde omstandigheden indien chdir(2) niet gebruikt kan worden. Als een daemon toestaat om een "chroot" map op te geven, dan betekent dat veelal dat u wil voorkomen dat gebruikers op een andere computer toegang krijgen tot de bestanden buiten de "chroot" map, dan dient u ervoor te zorgen dat mappen er nooit uit verplaatst worden.

De aanroep verandert de huidige werkmap niet, opdat na de aanroep '.' buiten de boom beginnend bij '/' kan zijn. In het bijzonder, de systeembeheerder kan ontsnappen van een "chroot bak" door uit te voeren:

    mkdir foo;
    chroot foo;
    cd ..;

Deze aanroep sluit open bestandsbeschrijvingen niet, en deze bestandsbeschrijvingen kunnen toegang naar bestanden buiten de chroot boom toestaan.

EIND WAARDE
Bij succes wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.

FOUTEN
Afhankelijk van het bestandsysteem kunnen andere fouten worden teruggegeven. De meer algemene fouten worden hieronder genoemd:

EACCES
    Het zoek toegangsrecht werd geweigerd op een deel van het pad-voorvoegsel. (Zie ook path_resolution(7).)

EFAULT
    pad wijst buiten door u toegankelijke adres ruimte.

EIO Een Invoer/Uitvoer fout trad op.

ELOOP
    Teveel symbolische koppelingen werden tegengekomen bij het vaststellen van pad.

ENAMETOOLONG
    pad is te lang.

ENOENT
    Het bestand bestaat niet.

ENOMEM
    Onvoldoende kernelgeheugen voorhanden.

ENOTDIR
    Een deel van pad is geen map.

EPERM
    De aanroeper heeft onvoldoende privileges.

STANDAARDEN
Geen.

HISTORIE
SVr4, 4.4BSD, SUSv1 (marked TO BE WITHDRAWN), SUSv2 (marked LEGACY). This function is not part of POSIX.1-2001.

OPMERKINGEN
Een kind proces aangemaakt door fork(2) erft de hoofdmap van zijn ouder. De hoofdmap wordt niet veranderd door execve(2).

De magische symbolische koppeling,/proc/pid/root, kan worden gebruikt om de hoofdmap van het process te vinden; zie proc(5) voor details.

FreeBSD heeft een sterkere jair() systeem aanroep.

ZIE OOK
chroot(1), chdir(2), pivot_root(2), path_resolution(7), switch_root(8)

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.