sudo – ¿Cuál es la necesidad del comando `fakeroot` en linux?

Pregunta:

¿Por qué necesitamos el comando fakeroot ? ¿No podemos simplemente usar los comandos sudo o su ?

La página de manual dice:

fakeroot: ejecuta un comando en un entorno que falsifica los privilegios de root para la manipulación de archivos

About.com dice:

Da un entorno de raíz falso. Este paquete está destinado a habilitar algo como: dpkg-buildpackage -rfakeroot es decir, para eliminar la necesidad de convertirse en root para la compilación de un paquete. Esto se hace configurando LD_PRELOAD en libfakeroot.so , que proporciona envoltorios alrededor de getuid , chown , chmod , mknod , stat , …, creando así un entorno raíz falso. Si no comprende nada de esto, ¡no necesita fakeroot !

Mi pregunta es, ¿qué propósito especial resuelve que un simple su o sudo no lo haga? Por ejemplo, para volver a empaquetar todos los paquetes instalados en ubuntu, damos el siguiente comando:

$ fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1`

¿Podemos hacer el comando anterior con sudo o su en lugar de fakeroot así:

$ sudo dpkg-repack `dpkg --get-selections | grep install | cut -f1`

EDITAR:

Corriendo:

$ sudo dpkg-repack `dpkg --get-selections | grep install | cut -f1`

me da este error:

el directorio de control tiene permisos incorrectos 700 (debe ser> = 0755 y <= 0775)

¿Alguna razón por la que?

Respuesta:

Imagine que es un desarrollador / mantenedor de paquetes, etc. que trabaja en un servidor remoto. Desea actualizar el contenido de un paquete y reconstruirlo, descargar y personalizar un kernel de kernel.org y compilarlo, etc. Mientras intenta hacer esas cosas, descubrirá que algunos pasos requieren que tenga derechos de root ( UID y GID 0) por diferentes motivos (seguridad, permisos pasados ​​por alto, etc.). Pero no es posible obtener derechos de root , ya que está trabajando en una máquina remota (y muchos otros usuarios tienen el mismo problema que usted). Esto es exactamente lo que hace fakeroot : pretende un UID y GID efectivo de 0 al entorno que los requiere.

En la práctica, nunca obtiene privilegios reales de root (al contrario de su y sudo que menciona).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım