Ero sivun ”Chroot” versioiden välillä

Siirry navigaatioon Siirry hakuun
1 650 merkkiä lisätty ,  31. elokuuta 2023
otsikko pienellä
pEi muokkausyhteenvetoa
(otsikko pienellä)
 
(14 välissä olevaa versiota 9 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Komennolla '''chroot''' voi käynnistää ohjelmia siten, että ne luulevat jonkun nykyisen tiedostojärjestelmän alihakemistoa [[juurihakemisto]]kseen.
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
'''chroot'''-[[Komentorivi|komennolla]] voi käynnistää ohjelmia siten, että ne näkevät jonkun nykyisen tiedostojärjestelmän alihakemistoa [[juurihakemisto]]kseen.


Esimerkiksi polun <tt>/mnt/distro</tt> muuttaminen juureksi ja [[bash]]-shellin käynnistäminen siinä onnistuu komennolla
Jotta ohjelmat toimisivat uudessa juurihakemistossa, on siinä oltava ainakin minimaalinen järjestelmä, sisältäen tarvittavat ohjelmat, niiden tarvitsemat [[kirjasto]]t ja muut aputiedostot sekä joitakin keskeisiä tiedostoja, kuten yleensä (muunnettu) /etc/[[passwd-tiedosto|passwd]]. Jos komentoa käytetään turvallisuuden parantamiseksi, hakemistorakenteen sisällön pitää kuitenkin olla mahdollisimman vähäinen. Ylimääräisiä ohjelmakirjastoja voi välttää [[kääntäminen|kääntämällä]] ohjelmia niin, että niihin sisältyy tarvittavat kirjastot tai valitsemalla ohjelmia, jotka eivät tarvitse kuin muutamia kirjastoja.
chroot /mnt/distro /bin/bash


Jos ajat kokonaista jakelua chrootin alaisuudessa, kannattaa [[Mount|liittää]] /proc-hakemisto myös chrootissa olevan jakelun juurihakemistoon ongelmien välttämiseksi:
Esimerkiksi polun <tt>/mnt/distro</tt> muuttaminen juureksi ja [[bash]]-komentotulkin käynnistäminen siinä onnistuu komennolla
chroot /mnt/distro /bin/[[bash]]
 
Hieman pidemmällä kaavalla, jos tarkoitus on ajaa tietty ohjelma rajoitetussa ympäristössä:
[[cd]] /mnt/jail
chroot .
cd .
[[su]] - -c '/bin/[[dash]]' [[Käyttäjä|tunnus]]
 
Tällä jälkimmäisellä tavalla varmistetaan, ettei ohjelmalla (tässä tapauksessa dash) ole avoimia tiedostoja uuden hakemistorakenteen ulkopuolella, kuten [[työhakemisto]] (josta löytyy .. ja sitä kautta koko tavallinen hakemistorakenne). Lisäksi ohjelma ajetaan toisena käyttäjänä, koska pääkäyttäjä voi helposti poistua chroot-vankilasta esimerkiksi luomalla [[Laitetiedostot|laitetiedostoja]] tai uuden vankilan alihakemistoon.
 
Jos ajat kokonaista jakelua chrootin alaisuudessa, kannattaa [[Mount|liittää]] /[[proc]]-, [[laitetiedostot|/dev-]], /dev/pts/-, /sys- ja /run-[[Linuxin hakemistorakenne|hakemistot]] myös chrootissa olevan jakelun juurihakemistoon ongelmien välttämiseksi:
  mount -t proc proc /mnt/distro/proc
  mount -t proc proc /mnt/distro/proc
mount -o bind /dev /mnt/distro/dev
mount -o bind /dev/pts /mnt/distro/dev/pts
mount -o bind /sys /mnt/distro/sys
mount -o bind /run /mnt/distro/run


Chroot-tilasta palataan normaalitilaan komennolla
Chroot-tilasta palataan normaalitilaan poistumalla chrootilla käynnistetystä ohjelmasta:
  exit
  exit


Rivi 16: Rivi 31:
[[Luokka:Coreutils]]
[[Luokka:Coreutils]]
[[Luokka:Komentorivin perustyökalut]]
[[Luokka:Komentorivin perustyökalut]]
[[pl:Chroot]]
706

muokkausta

Navigointivalikko