yocto - Как установить разрешение на команду busybox
В настоящее время я работаю над проектом yocto и ищу решение для установки разрешения на команду busybox. У меня есть мета-пример уровня 1, в котором есть ядро рецептов, которое содержит busybox_%. Bbappend и файлы / defconfig_patch.cfg, которые устанавливают конфигурацию.
Я ищу способ установить разрешение конкретной команды для пользователя ..
Пример,
Предположим, у меня есть два пользователя: user1 и user2. Я хочу разрешить пользователю user1 использовать команду cat, а не user2
Как мне это сделать ?
заранее спасибо
1 ответ
В Linux есть getfacl и setfacl, которые вы можете использовать для установки разрешений пользователей на данный двоичный файл. Подробнее здесь.
В Yocto вы можете использовать это, например:
do_install_append(){
setfacl -m u:user_name:r-- $D${bindir}/cat
}
Сейчас есть две проблемы:
Вам нужно увидеть, упаковывает ли busybox все двоичные файлы, разделенные на ${D}, или упаковывает ли один двоичный "busybox", если это один двоичный файл, вы можете попытаться добавить пакет рецепта образа.
Идея состоит в том, чтобы найти рецепт упаковки вашего целевого двоичного файла.
Вторая проблема заключается в том, что Yocto не сохраняет эти разрешения при создании окончательного rootfs, проблема упоминается здесь.
Итак, вы можете попробовать предлагаемое решение, которое добавляет разрешения после этапа пакета с помощью pkg_postinst_${PN}_append() , или я предлагаю вам создать службу, которая запускается при загрузке и запускает команды setfacl для желаемых двоичных файлов.
Это то, что я нашел, надеюсь, это поможет вам найти правильное решение.