es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Receta que no logra eliminar /usr/sbin/useradd.

Entonces, tengo una capa personalizada de yocto en la que necesito eliminar los comandos de modificación de cuentas de usuario (useradd, userdel, usermod, etc.). Estos comandos se almacenan en /usr/sbin. El método que he estado intentando es introducir una nueva receta (o agregar la misma lógica en una receta existente) donde hago lo siguiente:

SUMMARY = "Controles de modificación de cuentas de usuario"
DESCRIPTION = "Configura la existencia de comandos de modificación de usuarios"
LICENSE = "Propio"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Propio;md5=[redactado]"

SRC_URI += ""

FILES_${PN} += " \
    ${sbindir}/* \
"

do_install() {
    rm -rf ${D}${sbindir}/useradd
}

La parte importante, por supuesto, está en el do_install, donde useradd debería eliminarse de /usr/sbin. Aunque esto no sucede. He verificado que la receta se está analizando correctamente y he intentado agregar la misma lógica en mi receta principal de imagen. Bitbake se completa correctamente, aunque el sistema de archivos raíz y un iniciador de arranque muestran que /usr/sbin/useradd aún existe. Tal vez hay algo que no estoy entendiendo acerca de cómo se genera useradd.

Cualquier idea es muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para eliminar comandos de modificación de cuentas de usuario en una capa personalizada de Yocto

    Para eliminar los comandos de modificación de cuentas de usuario, como useradd, userdel, usermod, etc., que se encuentran en /usr/sbin en una capa personalizada de Yocto, se deben seguir los siguientes pasos:

    1. Crear una nueva receta (o agregar la misma lógica en una receta existente) en la capa personalizada de Yocto con el siguiente código:
    SUMMARY = "Controles de modificación de cuentas de usuario"
    DESCRIPTION = "Configura la existencia de comandos de modificación de usuario"
    LICENSE = "Propietario"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Propietario;md5=[redacted]"
    
    
    FILES_${PN} += " \
        ${sbindir}/* \
    "
    
    
    do_install() {
        rm -rf ${D}${sbindir}/useradd
    }
    
    1. En el código anterior, la parte importante se encuentra en la función do_install(), donde se elimina useradd de /usr/sbin.
    2. Verificar que la receta se esté analizando correctamente y que el bitbake se complete sin errores.

    3. Verificar en el rootfs y arrancar para asegurarse de que /usr/sbin/useradd se haya eliminado correctamente.

    Si useradd todavía existe incluso después de seguir los pasos anteriores, es posible que algo esté generándolo durante el proceso de construcción. En este caso, puede ser necesario investigar aún más para identificar y eliminar la fuente de useradd.

Comments are closed.