Я намерен установить некоторые возможности для двоичных файлов, включенных в образ Yocto, с помощью «setcap». По какой-то причине упомянутые здесь решения не сработали для меня: возможности Linux с yocto . Я проверил это, запустив «getcap» в моем двоичном файле в каталоге создания rootfs:
getcap ${IMAGE_ROOTFS}/usr/bin/mybinary
ничего не возвращает. Я также не нахожу возможности в окончательном рабочем образе SD-карты.
Затем я попробовал подход с использованием IMAGE_PREPROCESS_COMMAND. Я завернул команды setcap в небольшие функции оболочки, такие как:
my_setcap_function() {
sudo setcap cap_ipc_owner+ep ${IMAGE_ROOTFS}/usr/bin/mybinary
}
и добавьте имена функций к IMAGE_PREPROCESS_COMMAND. Это работает в той степени, в которой теперь запуск getcap для моего двоичного файла в каталоге {IMAGE_ROOTFS} показывает правильный набор заглавных букв. Однако я до сих пор не получаю возможности в окончательном рабочем образе SD-карты.
Кроме того, если я монтирую rootfs ext4 (который используется для создания окончательного образа SD-карты) в каталоге с помощью цикла -o, я не вижу возможности моего двоичного файла. Мне кажется, возможности как-то теряются при создании ext4 с помощью mkfs.ext4.
Мне пришлось подключить sudo к setcap, потому что в противном случае он жалуется, что «невозможно установить эффективную возможность CAP_SETFCAP: операция не разрешена». Хотя я понимаю, что команды IMAGE_PREPROCESS_COMMAND запускаются с использованием fakeroot, поэтому этот sudo не требуется.
Итак, резюмируя мой вопрос:
- Как я могу получить возможности образа SD-карты, созданного с использованием образа ext4 rootfs?
- Я хочу использовать способ, который не требует использования «sudo».
Я использую Yocto Krogoth и в настоящее время не могу его обновить.
-o user_xattr
? - person Nayfe   schedule 16.05.2018