Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Chroot
Een chroot op Unix-systemen is het veranderen van de rootdirectory naar een andere map voor het nu draaiende proces en de subprocessen. Een programma dat in zo'n aangepaste omgeving draait, kan bestanden buiten deze mappenstructuur niet bereiken. Met de term "chroot" wordt de systeemaanroep of het chroot(8)
-programma bedoeld. De aangepaste omgeving wordt een chroot jail genoemd.
Geschiedenis
De chrootsysteemaanroep werd als eerste geïntroduceerd in de ontwikkelingsversie van Version 7 Unix in 1979 en werd later aan BSD toegevoegd op 18 maart 1982 (17 maanden voordat 4.2BSD werd uitgegeven) door Bill Joy om het installatie- en bouwsysteem uit te testen.
Het eerste gebruik van de term "jail" komt van Bill Cheswick, die een honeypot maakte om een cracker te monitoren in 1991. Om het nuttig te maken voor virtualisatie, werd het concept in FreeBSD in de 4.0-uitgave in 2000 als het jail
-commando toegevoegd. In 2004 leidde dit tot de term jailbreak. In 2005 bracht Sun Solaris Containers uit, wat werd beschreven als "chroot on steroids" (veel betere chroot). In 2008 ging LXC (het systeem waarop Docker is gebouwd) de term "container" gebruiken en werd het populairder, omdat het in Linuxkernel 3.8 werd opgenomen als user namespaces.
Gebruik
Een chrootomgeving kan worden gebruikt om een gescheiden gevirtualiseerde kopie van een softwaresysteem te draaien en creëren. Dit kan handig zijn voor de volgende dingen:
Testen en ontwikkeling
Een testomgeving voor software kan worden gemaakt met chroot, wat anders te veel risico's meebrengt als het wordt getest op een productiesysteem.
Afhankelijkheidscontrole
Software kan ontwikkeld, gebouwd en getest worden in een chroot-omgeving met enkel de verwachte afhankelijkheden. Dit zorgt ervoor de omgevingen van verschillende ontwikkelaars waarin een project gebouwd wordt dezelfde combinatie van bibliotheken bevatten.
Compatibiliteit
Verouderde software of software die een andere ABI gebruikt moet soms in een chroot uitgevoerd worden omdat de ondersteunende bibliotheken of gegevensbestanden anders conflicteren met diegene die reeds aanwezig zijn op het hostsysteem.
Herstellingen (recovery)
Om een systeem te herstellen dat niet meer opstart, kan een chroot gebruikt worden om in de beschadigde omgeving in te loggen vanaf een alternatief rootbestandssysteem (bijvoorbeeld met een installatiemediu of een live-cd).
Scheiding van privileges
Programma's mogen open bestandsdescriptors (voor bestanden, pipelines en netwerkverbindingen) in de chrootomgeving gebruiken, zodat het jailontwerp vereenvoudigd kan worden. Hierdoor is het onnodig om bestanden in de chroot-directory te plaatsen.
Dit vereenvoudigt ook de vaakgebruikte manier om mogelijk kwetsbare delen van een gepriviligeerd programma (dat als root draait) in een sandbox te draaien, zodat het beveiligingslek binnen de sandbox blijft. Merk op dat chroot mogelijk niet genoeg is om een proces met rootrechten te beschermen.