No final, fiz o chmod 777 de toda a pasta de fontes e comecei a trabalhar. Provavelmente permissões em scripts ou arquivos exec. Obrigado a todos pelo apoio.
Provavelmente respondeu muitas vezes, mas conto encontrar a solução do meu caso.
Estou compilando um projeto Yocto com bitbake.
Uma receita do bitbake tenta alterar a permissão de alguns dir e arquivos usando o comando chown. O problema é que o comando falha devido a alteração da operação de propriedade não peermitted .
O comando Bitbake é iniciado pelo usuário luca, que também é um sudoers. Se eu digitar ls -l, o que eu vejo na pasta problemática é:
-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
Obviamente, se eu escrever manualmente, por exemplo, sudo chowwn 777 image
funciona, mas não consigo alterar o script bitbake que causa o erro.
O que há de errado com minha permissão e usuário?
No final, fiz o chmod 777 de toda a pasta de fontes e comecei a trabalhar. Provavelmente permissões em scripts ou arquivos exec. Obrigado a todos pelo apoio.
Eu estava recebendo erros semelhantes em bitbake. No meu caso, isso foi devido ao pseudo utilitário falhando, mas Yocto não mostra claramente os erros e parar. Em vez disso, continuou até que não conseguiu fazer chmod -R dir
como usuário normal. O utilitário 'Pseudo' é usado para interceptar chown
, chmod
chamadas, rastreá-las em um banco de dados sqlite. Eles agem como se estivessem alterando suas permissões de arquivo RFS, mas na verdade não requerem raiz. No meu caso, se você procurou o erro no pacote que falhou:
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.
Isso ocorreu porque alguém já havia definido recursos de segurança para atividades de desenvolvimento anteriores com: setcap cap_net_admin, cap_net_raw + eip / bin / bash ou / usr / bin / python. Para corrigir: setcap -r / bin / bash
Este post difícil de encontrar me disse: link
Tags permissions linux