chroot(2) System Calls Manual chroot(2) NAAM chroot - verander root map BIBLIOTHEEK Standard C bibliotheek (libc, -lc) SAMENVATTING #include int chroot(const char *pad); Feature Test Macro's eisen in 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 geerfd 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. VOLDOET AAN Geen. GESCHIEDENIS SVr4, 4.4BSD, 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 , Mario Blattermann en Luc Castermans Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 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 . Linux man-pages 6.06 31 oktober 2023 chroot(2)