Eigentümerwechsel in BitBake nicht zulässig

Eigentümerwechsel in BitBake nicht zulässig

Ich kompiliere ein Yocto-Projekt mit BitBake.

Ein Rezept von BitBake versucht, die Berechtigungen einiger Verzeichnisse und Dateien mit chowneinem Befehl zu ändern. Das Problem ist, dass der Befehl fehlschlägt, weilEigentümerwechselvorgang nicht zulässig.

Der BitBake-Befehl wird vom Benutzer luca gestartet, der ebenfalls ein Sudoers ist. Wenn ich ls -lFolgendes eingebe, wird im problematischen Ordner Folgendes angezeigt:

-rw-r--r--  1 luca luca 1875 May 13 17:10 arm-thumb-mutex_db5.patch
-rw-r--r--  1 luca luca   33 May 13 17:10 configure.sstate
drwxr-xr-x 16 luca luca 4096 May 13 17:10 db-6.0.30
-rw-r--r--  1 luca luca  665 May 13 17:10 fix-parallel-build.patch
drwxr-xr-x  3 luca luca 4096 May 13 19:11 image
drwxr-xr-x  2 luca luca 4096 May 13 19:11 temp

Wenn ich es beispielsweise manuell eingebe, sudo chowwn 777 imagefunktioniert es natürlich, aber ich kann das BitBake-Skript, das den Fehler verursacht, nicht ändern.

Was ist mit meinen Berechtigungen und meinem Benutzer los?

Antwort1

Am Ende habe ich chmod 777 für den gesamten Quellordner ausgeführt und alles funktioniert. Wahrscheinlich Berechtigungen für Skripte oder Exec-Dateien. Vielen Dank an alle für die Unterstützung.

Antwort2

Ich habe ähnliche Fehler in Bitbake erhalten. In meinem Fall lag dies daran, dass das Pseudo-Dienstprogramm fehlschlug, aber Yocto zeigte die Fehler nicht deutlich an und stoppte. Stattdessen machte es weiter, bis es chmod -R dirals normaler Benutzer nicht mehr weitermachen konnte. Das Dienstprogramm „Pseudo“ wird verwendet, um Anrufe abzufangen chownund chmodsie in einer SQLite-Datenbank zu verfolgen. Es verhält sich so, als würde es Ihre RFS-Dateiberechtigungen ändern, erfordert aber eigentlich keinen Root-Zugriff. In meinem Fall, wenn Sie nach dem Fehler im fehlgeschlagenen Paket gesucht haben:

build/tmp/work/aarch64-fsl-linux/gcc-runtime/linaro-4.9-r2015.03/temp> grep pseudo *
log.do_install:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

log.do_install.17098:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Dies lag daran, dass jemand zuvor Sicherheitsfunktionen für frühere Entwicklungsaktivitäten mit Folgendem festgelegt hatte:

setcap cap_net_admin,cap_net_raw+eip /bin/bash or to /usr/bin/python. To fix: setcap -r /bin/bash

Dieser schwer zu findende Beitrag hat mich darauf aufmerksam gemacht:http://lists.openembedded.org/pipermail/openembedded-core/2012-February/056779.html

verwandte Informationen