SCHROOT(1) 2022 SCHROOT(1)

schroot - start sikkert et chrootmiljø

schroot [-h|--help | -V|--version | -l|--list | -i|--info | --config | --location | --automatic-session | -b|--begin-session | --recover-session | -r|--run-session | -e|--end-session] [-f|--force] [-n sessionsnavn|--session-name=sessionsnavn] [-d mappe|--directory=mappe] [-u bruger|--user=bruger] [-p|--preserve-environment] [-s skal|--shell=skal] [-q|--quiet | -v|--verbose] [-c chroot|--chroot=chroot | [--all | --all-chroots | --all-source-chroots | --all-sessions] [--exclude-aliases]] [-o|--option=nøgle=værdi] [--] [KOMMANDO [ ARG1 [ ARG2 [ ARGn]]]]

schroot giver mulighed for at brugeren kan køre en kommando eller en logindskal i et chrootmiljø. Hvis ingen kommando er angivet, vil en logindskal blive starte i brugerens nuværende arbejdsmappe inden i chroot'en.

Kommandoen er et program, plus så mange valgfrie parametre som krævet. Hver parameter kan angives adskilt.

Mappen, som kommandoen eller logindskallen køres i, afhænger af konteksten. Se tilvalget --directory nedenfor for en fuldstændig beskrivelse.

Al chrootbrug vil blive logget i systemloggene. Under nogle omstændigheder, kan brugeren blive afkrævet godkendelse; se afsnittet “Godkendelse”, nedenfor.

Hvis ingen chroot er angivet, vil chrootnavnet elelr aliasset ‘default’ blive brugt som reserve. Dette modsvarer “--chroot=default”.

Der er ofte et behov for at køre programmer i et virtualiseret miljø frem for direkte på selve værtssystemet. Til forskel fra andre virtualiseringsssystemer såsom kvm eller Xen, så virtualiserer schroot ikke hele systemet; det virtualiserer kun filsystemet og nogle dele af filsystemet kan stadig deles med værten. Programmet er derfor hurtigt, enkelt og fleksibelt. Det virtualiserer dog ikke andre aspekter af systemet, såsom delt hukommelse, netværk, enheder etc., og kan derfor være mindre sikker end andre systemer, afhængig af det forventede brug. Nogle eksempler på eksisterende brug af schroot inkluderer:

Kørsel af et usikkert program i en sandkasse, så det ikke kan påvirke eller ændre filer på værtssystemet; dette kan også bruges til at begrænse skaden en kompromiteret tjeneste kan udføre på værten
Bruge et defineret eller rent miljø, for at garantere genskabelse og integritet for en bestemt opgave
Bruge forskellige versoner af et operativsystem, eller endda helt forskellige operativsystemer, f.eks. forskellige GNU/Linux-distributioner
Kørsel af 32-bit programmer med en 32-bit chroot på et 64-bit værtssystem
Automatisk bygning af Debianpakker med brug af sbuild(1), som bygger hver pakke i et pristine chrootøjebliksbillede når der bruges LVM-øjebliksbilleder eller unions
Understøttelse af flere systemaftryk i en klyngeopsætning, hvor ændring af basisaftrykket er tidsforbrugende og/eller understøtter alle de krævede konfigurationer krævet af brugerne er svært: Forskellige chroot'er kan understøtte alle de forskellige krævede konfigurationer, og klyngebrugere kan gives adgang til chroot'erne de har brug for (hvilket kan inkludere root-adgang for pålidelige brugere, så de kan vedligeholde deres egne aftryk)

En chroot kan bruges direkte som root ved at køre chroot(8), men normale brugere kan ikke bruge denne kommando. schroot giver mulighed for adgang til Chroot'er for normale brugere med den samme mekanisme, men med flere yderligere funktioner. Mens schroot bruger en mappe som chroot ligesom chroot(8), så kræver den ikke, at dette er den normale mappe i filsystemet. Selvom dette er standard, så kan chroot'en også oprettes fra en fil, et filsystem, inklusive LVM- og Btrfs-øjebliksbilleder og loopback-monteringer, eller opbygges af et uniconfs overlag. Da brugeren kan udvide, er omfanget for oprettelse af chroot'er fra forskellige kilder kun begrænset af din fantasi. Schroot udfører tilladelseskontrol og tillader yderligere automatiseret opsætning af chrootmiljøet såsom at montere yderligere filsystemer og andre konfigurationsopgaver. Denne automatiseret opsætning udføres via handlingen opsætningsskripter, som kan tilpasses og udvides til at udføre enhver krævet handling. Typiske handlinger inkluderer montering af brugerens hjemmemappe, opsætning af netværk- og systemdatabaser, og også at starte tjenester op. Disse kan igen fuldt ud tilpasses af administratoren. Opsætningsskripterne køres for alle typer af chroot, med undtagelse af typen ‘plain’, den simpleste chroottype, der ikke tilbyder nogen form for automatisk opsætningsfunktioner. Konfigurationen af schroot er dækket i flere detaljer i schroot.conf(5).

schrootaccepterer de følgende tilvalg:

Vis referat for hjælp.
Vis versionsinformation.
Vis alle tilgængelige chroot'er.
Udskriv detaljeret information om de angivne chroot'er.
Udskriv konfiguration af de angivne chroot'er. Dette er nyttigt for test af at det brugte konfiguration er den samme som konfigurationsfilen. Alle kommentarer i den originale fil vil mangle.
Vis placering (sti) for de angivne chroot'er. Bemærk at chroottyper som kun kan bruges inden i en session ikke vil have en placering, før de er aktive.

Vis kun esentielle beskeder.
Vis alle beskeder.

Specificer en chroot eller aktiv session for brug. Dette tilvalg kan bruges af flere omgange til at specificere mere end en chroot. I dette tilfælde er dets effekt lig med --all. Chrootnavnet kan have et præfiks navnerum; se afsnittet “Chroot Namespaces”, nedenfor.
Vælg alle chroot'er, kildechroot'er og aktive sessioner. Når en kommando er blevet angivet, vil kommandoen blive kørt i alle chroot'er, kildechroot'er og aktive sessioner. Hvis --info er blevet brugt, så vis information om alle chroot'er. Denne indstilling giver ikke mening at bruge med et logindskal (køre når ingen kommando er blevet angivet). Denne indstilling svarer til “--all-chroots --all-source-chroots --all-sessions”.
Vælg alle chroot'er. Identisk med --all, undtagen at kildechroot'er og aktive sessioner ikke indgår.
Vælg alle aktive sessioner. Identisk med --all, undtagen at chroot'er og kildechroot'er ikke indgår.
Vælg alle kildechroot'er. Identisk med --all, undtagen at chroot'er og sessioner ikke indgår.
Vælg ikke aliasser som tilføjelse til chroot'er. Dette sikrer at kun reelle chroot'er vælges, og vises kun en gang.

Ændr til mappe inden i chroot'en før kørsel af kommandoen eller logindskal. Hvis mappe ikke er tilgængelig, vil schroot afslutte med en fejlstatus.
Standardopførslen er som følger (alle mappestier er inden i chroot'en). En logindskal køres i den nuværende arbejdsmappe. Hvis denne ikke er tilgængelig, vil den forsøge $HOME (når --preserve-environment bruges), så brugerens hjemmemappe, og / inden i chroot'en efterfølgende. En kommando køres altid i den nuværende arbejdsmappe inden i chroot'en. Hvis ingen af mapperne er tilgængelige, vil schroot afslutte med en fejlstatus.
Kør som en anden bruger. Standarden er at køre som den nuværende bruger. Hvis krævet, kan brugeren blive afkrævet godkendelse via indtastning af en adgangskode. For yderligere information, se afsnittet “Godkendelse”, nedenfor.
Bevar brugerens miljø inden i chrootmiljøet. Standarden er at bruge et rent miljø; denne indstilling kopierer hele brugermiljøet og sætter det i sessionen. De tilladte miljøvariabler skal overholde visse begrænsninger; se afsnit “Miljø”, nedenfor.
Brug skal som logindskal. Når der køres en loginskal vil et antal potentielle skaller blive overvejet, i denne rækkefølge: kommandoen i SKAL-miljøvariablen (hvis --preserve-environment bruges, eller preserve-environment er aktiveret), brugerens skal i databasen ‘passwd’, /bin/bash og endelig /bin/sh. Denne indstilling overskriver denne liste, og vil bruge den angivne skal. Denne indstilling overskriver også konfigurationsnøglen shell, hvis angivet.
Angiv en indstilling. Værdien for valgte konfigurationsnøgler i schroot.conf kan ændres med denne indstilling. Nøglen skal være til stede i konfigurationsnøglen user-modifiable-keys i schroot.conf, eller deruover nøglen user-modifiable-keys hvis kørsel som (eller skift til) rootbrugeren. Nøglen og værdien angivet her vil blive angivet i miljøet for opsætningsskripterne, og kan dermed bruges til at tilpasse chroot'en på et per session-grundlag.

Begynd, kør og afslut en session automatisk. Dette standardhandlingen, så den kræver ikke specifikation i normal operation.
Begynd en session. En unik sessionsidentifikation (session-id) returneres på standardud. Sessions-id'en er krævet for at bruge de andre sessionstilvalg. Bemærk at sessionsidentifikation kan specificeres med tilvalget --session-name.
Gendan en eksisterende session. Hvis en eksisterende session er blevet utilgængelig, for eksempel blevet afmonteret på grund af en genstart, så vil dette tilvalg gør sessionen tilgængelig for brug igen, for eksempel ved at genmontere den. Session-id'et er angivet med tilvalget --chroot.
Kør en eksisterende session. Session-id'et er angivet med tilvalget --chroot.
Afslut en eksisterende session. Session-id'et er angivet med tilvalget --chroot.

Navngiv en session. Det angivne sessionsnavn erstatter navnet for standardsessionen, der indeholder et automatisk oprettet id. Sessionsnavnet må ikke indeholde en navnerumskvalifikator, da sessioner altid oprettes inden for navnerummet ‘session:’. Sessionsnavnet er også omfattet af chroot'ens navngivningsbegrænsninger dokumenteret i schroot.conf(5).
Fremtving en sessionshandling, selv om den ellers ville fejle. Dette kan bruges til med tvang at afslutte en session, selv om den har aktive brugere. Dette garanterer ikke, at sessionen afsluttes pænt; for eksempel bliver filsystemer måske ikke afmonteret.

--
Slut med tilvalg. Brugt til at indikere, at der ikke er flere schroottilvalg; alle følgende tilvalg vil blive sendt til den kørende kommando, fremfor til schroot.

Hvis brugeren ikke er en tilladt bruger, eller et medlem af de tilladte grupper (eller hvis skift til root, de tilladte rootbrugere eller tilladte rootgrupper) for de specificerede chroot'er, vil brugeren blive bedt om godkendelse via akkreditiverne for brugeren der skiftes til.

På systemer der understøtter Pluggable Authentication Modules (PAM), vil schroot bruge PAM for godkendelse og autorisering af brugere. Hvis og når krævet vil schroot anmode om en adgangskode. Hvis PAM ikke er tilgængelig, vil al godkendelse automatisk fejle (brugerskift er ikke understøttet uden PAM).

Bemærk at når PAM er i brug, så får rootbrugeren ikke tildelte nogen specielle privilegier som standard i programmet. Dog tillader standardkonfigurationen for PAM at root kan logge ind uden en adgangskode (pam_rootok.so), men dette kan være deaktiveret for at forhindre root i at tilgå chroot'er undtagen hvis specifikt tilladt. I sådan en situation, skal root tilføjes til de tilladte brugere eller gruppe som for enhver anden bruger eller gruppe. Hvis PAM ikke er tilgængelig, vil rootbrugeren have tilladelse til at tilgå alle chroot'er, selv hvis de ikke eksplicit er tildelt adgang.

Der er tre forskellige chroottyper: regulære chrooter, kildechrooter og sessionschrooter. Disse forskellige typer af chroot er adskilt i forskellige navnerum. Et navnerum er et præfiks til et chrootnavn. I øjeblikket er der tre navnerum: ‘chroot:’, ‘source:’ og ‘session:’. Brug --list --all for at vise alle tilgængelige chrooter i alle navnerum. Da ‘:’ bruges som adskillelsestegn mellem navnerum og chrootnavne, er det ikke tilladt at bruge dette tegn i chrootnavne.

Afhængig af handlingen du anmoder schroot om at udføre, så vil den kigge i en af tre navnerum, eller et bestemt navnerum kan angives. For eksempel, et chroot navngivet “sid” er reelt navngivet “chroot:sid” hvis navnerummet er inkluderet, men navnerummet kan udelades for de fleste handlinger.

Nogle chroottyper, for eksempel LVM-øjebliksbilleder og Btrfs-øjebliksbilleder, tilbyder sessionshåndteret kopier ved skrivning-øjebliksbilleder for chrooten. Disse tilbyder også en kildechroot som giver nem adgang til filsystemet brugt som en kilde for registrering af øjeblikkets status. Disse er også regulære chrooter, bare med deaktivering af øjeblikkets status. For en chroot navngivet “sid-snapshot” (dvs. med et fuldt kvalificeret navn for “chroot:sid-snapshot”), vil der også være en tilsvarende kildechroot navngivet “source:sid-snapshot”. Tidligere versioner af schroot tilbød kildechrooter med suffiks ‘-source’. Disse tilbydes også for kompatibilitet. I dette eksempel vil det blive kaldt “chroot:sid-snapshot-source”. Disse kompatibilitetsnavne vil blive droppet i en fremtidig version, så programmer og skripter bør skifte over til navnerumskvalificerede navne fremfor det gamle suffiks.

Alle sessioner oprettet med --begin-session er placeret inden i navnerummet ‘session:’. En session navngivet med --session-name kan have et andet navn, endda det samme navn chrooten den blev oprettet fra, forudsat at navnet er unik indenfor dette navnerum. Dette var ikke tilladt i tidligere versioner af schroot, som ikke havde navnerum.

Alle handlinger bruger navnerummet ‘chroot:’ som standard, hvor nogle sessionshandlinger udgør undtagelsen. --run-session, --recover-session og --end-session bruger ‘session:’ som standardnavnerum i stedet for, da disse handlinger virker på sessionschrooter. Resultatet er, at navnerummet normalt aldrig er krævet, undtagen når du skal arbejde med et andet navnerum end standarden, såsom når der bruges en kildechroot. For at gøre chrootvalg utvetydig, er det altid muligt at bruge det fulde navn inklusiv navnerummet, selv hvor det ikke er strengt krævet.

Ydelsen på nogle filsystemer, for eksempel Btrfs, er dårlig når der køres dpkg på grund af mængden af ydførte fsync-handlinger. Dette kan undgås ved at installere pakken eatmydata og så tilføje eatmydata til konfigurationsnøglen command-prefix, som deaktiverer alle fsync-handlinger. Bemærk at dette kun bør gøres i øjeblikschrooter hvor datatab ikke er et problem. Dette er f.eks. nyttigt, når der bruges en chroot for pakkebygning.

Schroot vil vælge en passende mappe at bruge inden i chrooten baseret på hvorvidt en interaktiv logindskal vil blive brugt, eller en kommando igangsat, og derudover om tilvalget --directory anvendes. I tilfældet hvor kommandoer køres direkte, eller der eksplicit angives en mappe, vil kun en mappe blive brugt af sikkerhedshensyn og for konsistens, mens der for en logindskal kan forsøges flere muligheder. De følgende underafsnit viser reservesekvensen for hvert tilfælde. CWD er den nuværende arbejdsmappe, DIR er mappen angivet med --directory.

Transition
(Host → Chroot) Comment
CWD → CWD Normal behaviour (if --directory is not used)
CWD → $HOME If CWD is nonexistent and --preserve-environment is used
CWD → passwd pw_dir If CWD is nonexistent (or --preserve-environment is used and no $HOME exists)
CWD → / None of the above exist
FAIL If / is nonexistent

Transition
(Host → Chroot) Comment
CWD → CWD Normal behaviour (if --directory is not used)
FAIL If CWD is nonexistent

Der skal under ingen omstændigheder være nogen reserver.

--directory brugt

Transition
(Host → Chroot) Comment
CWD → DIR Normal behaviour
FAIL If DIR is nonexistent

Der skal under ingen omstændigheder være nogen reserver.

Bemærk at --debug=notice vil vise den interne reserveliste beregnet for sessionen.

% schroot -l↵
chroot:default
chroot:etch
chroot:sid
chroot:testing
chroot:unstable

% schroot -i -c sid↵
  ——— Chroot ———
  Navn                   sid
  Beskrivelse            Debian sid (unstable)
  Type                   plain
  Prioritet              3
  Brugere                rleigh
  Grupper                sbuild
  Rootbrugere
  Rootgrupper            sbuild
  Aliasser               unstable unstable-sbuild unstable-p
owerpc-sbuild
  Miljøfilter            ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
  Kør opsætningsskripter true
  Skriptkonfiguration    script-defaults
  Session håndteret      true
  Personalitet           linux32
  Placering              /srv/chroot/sid

Brug --all eller -c flere gange for at bruge alle eller flere chrooter, respektivt.

% schroot -c sid /bin/ls↵
[sid chroot] Kørende kommando: “/bin/ls”
CVS          sbuild-chroot.c   sbuild-session.h  schroot.conf.5
Makefile     sbuild-chroot.h   schroot.1         schroot.conf.5.in
Makefile.am  sbuild-config.c   schroot.1.in
Makefile.in  sbuild-config.h   schroot.c
pam          sbuild-session.c  schroot.conf
% schroot -c sid -- ls -1 | head -n 5↵
[sid chroot] Kørende kommando: “ls -1”
ABOUT-NLS
AUTHORS
COPYING
ChangeLog
INSTALL

Brug -- for at tillade tilvalg der begynder med ‘-’ eller ‘--’ i kommandoen der skal køre i chrootet. Dette forhindrer dem i at blive fortolket som tilvalg for selve schroot. Bemærk at den øverste linje blev ekkoet til standardfejl, og de resterende linjer til standardud. Dette er med vilje, så at programuddata fra kommandoer kørt i chrootet kan sendes via en datakanal og videresendes som krævet; dataene vil være de samme som hvis kommandoen blev kørt direkte på værtssystemet.

% schroot -c sid -u root↵
Adgangskode:
[sid chroot] (rleigh→root) Kørende logindskal: “/bin/bash”
#

Hvis brugeren ‘rleigh’ var i root-users i /etc/schroot/schroot.conf, eller en af grupperne han tilhørte var i root-groups, ville de få rootadgang uden godkendelse, men PAM-godkendelsestrinet bruges stadig.

En chroot kan være krævet for at køre mere end en kommando. Specielt, hvor chrooten er oprettet løbende fra et LVM LV eller en fil på en disk, er der et behov for at gøre chrooten vedvarende mens en angiven opgave (eller et opgavesæt) udføres. Sessioner findes til dette formål. For simple chroottyper såsom ‘plain’ og ‘directory’, kan sessioner oprettes men det er ikke strengt nødvendigt.

Lad os begynde med at kigge på en chroot, der kan afvikles via en session:

% schroot -i -c sid-snap↵
  ——— Chroot ———
  Navn                   sid-snap
  Beskrivelse            Debian sid snapshot
  Type                   lvm-snapshot
  Prioritet              3
  Brugere                maks rleigh
  Grupper                sbuild
  Rootbrugere
  Rootgrupper            root sbuild
  Aliasser
  Miljøfilter            ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
  Kør opsætningsskripter true
  Skriptkonfiguration    script-defaults
  Session håndteret      true
  Personalitet           linux
  Enhed                  /dev/hda_vg/sid_chroot
  Monteringstilvalg      -o atime,async,user_xattr
  Kildebrugere
  Kildegrupper           root rleigh
  Kilderootbrugere
  Kilderootgrupper       root rleigh
  LVM-øjeblikstilvalg    --size 2G -c 128

Bemærk at tilvalget Session Managed er sat til ‘true’. Dette er et krav for at bruge sessionshåndtering, og er understøttet af de fleste chroottyper. I det næste afsnit vil vi oprette en ny session:

% schroot -b -c sid-snap↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

Sessions-id'et for den netop oprettede session returneres på standardud. Det er normalt at gemme det således:

% SESSION=$(schroot -b -c sid-snap)↵
% echo $SESSION↵
sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

Sessionen kan bruges som enhver normal chroot. Sådan ser sessionerne ud:

% schroot -i -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
  ——— Session ———
  Navn                   sid-snap-46195b04-0893-49bf-beb8-0d\
4ccc899f0f
  Beskrivelse            Debian sid snapshot
  Type                   lvm-snapshot
  Prioritet              3
  Brugere                maks rleigh
  Grupper                sbuild
  Rootbrugere
  Rootgrupper            root sbuild
  Aliasser
  Miljøfilter            ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|I\
FS|KRB5_CONFIG|KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMA\
IN|NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|TERMINFO_DIRS|TE\
RMPATH)$
  Kør opsætningskripter  true
  Skriptkonfiguration    script-defaults
  Session håndteret      true
  Personalitet           linux
  Monteringsplacering    /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
  Sti                    /var/lib/schroot/mount/sid-snap-461\
95b04-0893-49bf-beb8-0d4ccc899f0f
  Monteringsenhed        /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
  Enhed                  /dev/hda_vg/sid_chroot
  Monteringstilvalg      -o atime,async,user_xattr
  Kildebrugere
  Kildegrupper           root rleigh
  Kilderootbrugere
  Kilderootgrupper       root rleigh
  LVM-øjebliksenhed      /dev/hda_vg/sid-snap-46195b04-0893-\
49bf-beb8-0d4ccc899f0f
  LVM-øjeblikstilvalg    --size 2G -c 128

Nu er sessionen blevet oprettet, kommandoer kan køres i den:

% schroot -r -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f -- \
  uname -sr↵
I: [sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f chroot] Running \
kommando: “uname -sr”
Linux 2.6.18-3-powerpc
% schroot -r -c $SESSION -- uname -sr↵
I: [sid-snap-fe170af9-d9be-4800-b1bd-de275858b938 chroot] Running \
kommando: “uname -sr”
Linux 2.6.18-3-powerpc

Når alle kommandoerne til kørsel i sessionen er blevet udført, kan sessionen afsluttes:

% schroot -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f
% schroot -e -c $SESSION

Endelig kan sessionsnavnene være lange og besværlige. Et navn kan angives i stedet for at bruge det automatisk oprettede sessions-id:

% schroot -b -c sid-snap -n mit-sessionsnavn
mit-sessionsnavn

Hvis noget ikke fungerer, og det ikke fremgår af fejlbeskederne, hvad der er galt, så prøv at bruge tilvalget --debug=niveau for at udvide fejlbeskederne. Dette giver en del yderligere information. Gyldige fejlsøgningsniveauer er ‘none’ og ‘notice’, ‘info’, ‘warning’ og ‘critical’ i viste rækkefølge for øgende sværhedsgrad. Jo lavere sværhedsgrad, jo mere loginformation.

Hvis du stadig har problemer, så kan udvikleren kontaktes på postlisten:
Debian buildd-tools Developers
<buildd-tools-devel@lists.alioth.debian.org>

På arkitekturerne mips og mipsel har Linuxkerner til og med mindst version 2.6.17 ødelagt understøttelse for personality(2), som medfører en fejl i indstillingen af personlighed. Dette vil ses som fejlen “Operation er ikke tilladt” (EPERM). For at omgå dette problem så indstil personality til ‘undefined’, eller opgrader til en nyere kerne.

Som standard bevares miljøet ikke, og de følgende miljøvariabler er defineret: HOME, LOGNAME, PATH, SHELL, TERM (bevaret hvis allerede defineret) og USER. Miljøvariablen SCHROOT_COMMAND, SCHROOT_USER, SCHROOT_GROUP, SCHROOT_UID og SCHROOT_GID indstilles inden i chrooten ved at specifere kommandoen der køres, brugernavn, gruppenavn, bruger-id og gruppe-id, respektivt. Derudover specificerer miljøvariablerne SCHROOT_SESSION_ID, SCHROOT_CHROOT_NAME og SCHROOT_ALIAS_NAME sessions-id'et, det oprindelige chrootnavn før sessionsoprettelse, og aliasset brugt til oprindelig at identificere den valgte chroot, respektivt.

De følgende, potentielt farlige, miljøvariabler fjernes af sikkerhedshensyn: BASH_ENV, CDPATH, ENV, HOSTALIASES, IFS, KRB5_CONFIG, KRBCONFDIR, KRBTKFILE, KRB_CONF, LD_.*, LOCALDOMAIN, NLSPATH, PATH_LOCALE, RES_OPTIONS, TERMINFO, TERMINFO_DIRS og TERMPATH. Hvis ønsket vil konfigurationsnøglen environment-filter give mulighed for at eksklusionslisten ændres; se schroot.conf(5) for yderligere detaljer.

/etc/schroot/schroot.conf
Chrootdefinitionsfil for hele systemet. Denne fil skal være ejet af root-brugeren, og der må ikke kunne skrives til den af andre.
/etc/schroot/chroot.d
Yderligere chrootdefinitioner kan placeres i filer under denne mappe. De behandles på præcis samme måde som /etc/schroot/schroot.conf. Hver fil kan indeholde en eller flere chrootdefinitioner. Bemærk at filerne i denne mappe følger de samme navneregler som run-parts(8) når kørt med tilvalget --lsbsysinit.
/etc/schroot/setup.d
Mapper til chrootens opsætningsskript for hele systemet. Se schroot-setup(5).
/etc/pam.d/schroot
PAM-konfiguration.

/usr/lib/schroot
Mappe indeholdende hjælpeprogrammer brugt af opsætningsskripter.

Hver mappe indeholder en mappe eller fil med navnet for hver session. Ikke alle chroottyper gør brug af alle de følgende mapper.

/var/lib/schroot/session
Mappe der indeholder sessionskonfigurationen for hver aktiv session.
/var/run/schroot/mount
Mappe brugt til at montere filsystemet brugt af hver aktiv session.
/var/lib/schroot/union/underlay
Mappe brugt til union-kilde for filsystemet (underlag).
/var/lib/schroot/union/overlay
Mappe brugt til union-skrivbar overlag for filsystemet.
/var/lib/schroot/unpack
Mappe brugt for udpakning af filchrooter.

Roger Leigh.

Ophavsret © 2005-2012 Roger Leigh <rleigh@codelibre.net>

schroot er frit programmel: Du kan videredistribuere det og/eller ændre det under betingelserne i GNU General Public License som udgivet af Free Software Foundation, enten version 3 af licensen, eller (efter dit valg) enhver senere version.

dchroot(1), sbuild(1), chroot(2), schroot.conf(5). schroot-setup(5), schroot-faq(7), run-parts(8),

14 Aug