Chroot viene spesso utilizzato per creare un ambiente limitato per un processo o un gruppo di processi. Ad esempio, un processo del server Web potrebbe essere sottoposto a chroot nella propria directory, in modo che non possa accedere ad altri file sul server. Ciò può contribuire a migliorare la sicurezza impedendo che il server Web venga compromesso da un utente malintenzionato.
Chroot può essere utilizzato anche per creare un sandbox per codice non attendibile. Ad esempio, un utente potrebbe voler eseguire un programma scaricato da Internet in un ambiente chroot per evitare che danneggi il proprio sistema.
Per utilizzare chroot, il processo deve avere la capacità CAP_SYS_CHROOT. Questa capacità è normalmente concessa ai processi eseguiti come root.
La sintassi della chiamata di sistema chroot è:
`int chroot(const char *nomepercorso);`
Dove:
pathname:il percorso della nuova directory root.
Ecco un esempio di come utilizzare chroot:
```
#include
#include
#include
int principale()
{
// Cambia la directory root in /tmp
if (chroot("/tmp") ==-1) {
perror("chroot");
esci(EXIT_FAILURE);
}
// Stampa la directory di lavoro corrente
char cwd[1024];
if (getcwd(cwd, sizeof(cwd)) ==NULL) {
perror("getcwd");
esci(EXIT_FAILURE);
}
printf("Directory di lavoro corrente:%s\n", cwd);
restituisce EXIT_SUCCESS;
}
```
Quando questo programma viene eseguito, stamperà il seguente output:
```
Directory di lavoro corrente:/tmp
```
Ciò mostra che la directory di lavoro corrente è stata modificata in /tmp.
Informazioni correlate
sistemi © www.354353.com