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