“Conocimiento Sistemas>Linux

¿Qué hace chroot en un sistema operativo Linux?

2014/12/16
La llamada al sistema chroot cambia el directorio raíz del proceso de llamada y sus hijos. Esto significa que el proceso y sus hijos verán el directorio especificado como la raíz del sistema de archivos. Todos los nombres de ruta se interpretarán en relación con esta nueva raíz, en lugar de la raíz real del sistema de archivos.

Chroot se utiliza a menudo para crear un entorno restringido para un proceso o grupo de procesos. Por ejemplo, un proceso de servidor web podría tener un chroot en su propio directorio, de modo que no pueda acceder a ningún otro archivo en el servidor. Esto puede ayudar a mejorar la seguridad al evitar que un usuario malintencionado comprometa el servidor web.

Chroot también se puede utilizar para crear una zona de pruebas para código que no es de confianza. Por ejemplo, un usuario podría querer ejecutar un programa descargado de Internet en un entorno chroot para evitar que dañe su sistema.

Para utilizar chroot, el proceso debe tener la capacidad CAP_SYS_CHROOT. Esta capacidad normalmente se otorga a procesos que se ejecutan como root.

La sintaxis de la llamada al sistema chroot es:

`int chroot(const char *nombre de ruta);`

Dónde:

nombre de ruta:la ruta al nuevo directorio raíz.

Aquí hay un ejemplo de cómo usar chroot:

```

#incluir

#incluir

#incluir

int principal()

{

// Cambia el directorio raíz a /tmp

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

perror("chroot");

salir(EXIT_FAILURE);

}

// Imprime el directorio de trabajo actual

char cwd[1024];

si (getcwd(cwd, tamaño de(cwd)) ==NULL) {

perror("getcwd");

salir(EXIT_FAILURE);

}

printf("Directorio de trabajo actual:%s\n", cwd);

devolver EXIT_SUCCESS;

}

```

Cuando se ejecuta este programa, imprimirá el siguiente resultado:

```

Directorio de trabajo actual:/tmp

```

Esto muestra que el directorio de trabajo actual se ha cambiado a /tmp.

Linux
Los requisitos para que un equipo funcione Linux
Cómo reinstalar el MBR en Debian
¿Por qué Windows es mejor que Linux?
Cómo encontrar la dirección MAC del dispositivo en Linux
¿Cómo describir un comando en Linux
Cómo convertir Ext2 a Ext3
Cómo acceder a MikroTik Usando Terminal
¿Por qué el software memtest86 debe ejecutarse desde el disco de arranque?
Conocimiento de la computadora © http://www.ordenador.online