Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> Systémy >> linux >> .

Čo robí chroot v operačnom systéme Linux?

Systémové volanie chroot zmení koreňový adresár volajúceho procesu a jeho potomkov. To znamená, že proces a jeho potomkovia budú vidieť zadaný adresár ako koreňový adresár súborového systému. Všetky názvy ciest budú interpretované relatívne k tomuto novému koreňovému adresáru namiesto skutočného koreňového adresára súborového systému.

Chroot sa často používa na vytvorenie obmedzeného prostredia pre proces alebo skupinu procesov. Napríklad proces webového servera môže byť chrootovaný do vlastného adresára, takže nemá prístup k žiadnym iným súborom na serveri. To môže pomôcť zlepšiť bezpečnosť tým, že zabráni napadnutiu webového servera používateľom so zlými úmyslami.

Chroot možno použiť aj na vytvorenie karantény pre nedôveryhodný kód. Používateľ môže napríklad chcieť spustiť program stiahnutý z internetu v chrootovanom prostredí, aby zabránil poškodeniu jeho systému.

Ak chcete použiť chroot, proces musí mať schopnosť CAP_SYS_CHROOT. Táto schopnosť sa bežne poskytuje procesom spusteným ako root.

Syntax systémového volania chroot je:

`int chroot(const char *cesta);`

kde:

pathname:Cesta k novému koreňovému adresáru.

Tu je príklad, ako používať chroot:

```

#include

#include

#include

int main()

{

// Zmeňte koreňový adresár na /tmp

if (chroot("/tmp") ==-1) {

chyba("chroot");

exit(EXIT_FAILURE);

}

// Vytlačí aktuálny pracovný adresár

char cwd[1024];

if (getcwd(cwd, sizeof(cwd)) ==NULL) {

pererror("getcwd");

exit(EXIT_FAILURE);

}

printf("Aktuálny pracovný adresár:%s\n", cwd);

návrat EXIT_SUCCESS;

}

```

Keď je tento program spustený, vytlačí nasledujúci výstup:

```

Aktuálny pracovný adresár:/tmp

```

To ukazuje, že aktuálny pracovný adresár bol zmenený na /tmp.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené