Как часть процесса сборки, я хочу выполнить следующие две команды:
sudo chmod a+r /dev/cpu/*/msr
sudo setcap cap_sys_rawio=ep ./bench
Это устанавливает файлы /dev/cpu/*/msr
, представленные модулем ядра msr
, на чтение для всех, и устанавливает дополнительные разрешения для двоичного файла ./bench
(созданного как часть сборки), необходимого для чтения этих файлов.
Проблема заключается в том, что для этого требуются разрешения root, следовательно, sudo
.
Я бы хотел что-то вроде скрипта setuid root, который выполняет эти две конкретные c вещи, но скрипты setuid root не рекомендуются и отключены в современных Linux.
Какие у меня есть варианты для простого решения?
Решение, которое работает только для второй строки (setcap
), также интересно, потому что оно мне нужно для запуска каждый build, тогда как chmod
нужно запускать только один раз за загрузку.