Просто чтобы вернуться к методу sudoers, я думаю, что вы были почти там, прежде чем сдаться. Глядя на ваши последние комментарии, я просто хотел бы остановиться на том, что, вероятно, поможет вам:
Если вы запускаете скрипт от имени пользователя root, вам не нужно вызывать sudo из него.
У меня есть такой скрипт:
#! /bin/bash
echo $USER
whoami
Если я бегу, sudo ./myscriptя вижу rootвозвращение для обоих. Сеанс, в котором выполняется скрипт, является корневой оболочкой.
Короче говоря, это означает, что все, что вы делаете в своем скрипте, уже имеет права root. Вам не нужно звонить sudo(не то, чтобы это причиняло боль - rootобычно есть sudoразрешения).
Так что напишите ваш скрипт, chownего rootи chmodего 700(чтобы только root мог запускать, читать или редактировать его), а затем просто позволить вашим пользователям запускать его через sudoers. Это должно работать.
Если это не работает, это скорее проблема со скриптом, а не с инфраструктурой разрешений. Я бы предложил предоставить пользователю полный sudoдоступ (проще всего добавить в группу администраторов), а затем запустить скрипт.
/etc/profileто,~/.profileпотому что выполнение кода в этих сценариях выполняется оболочкой пользователя и подчиняется контролю пользователя, тогда как если вы не хотите, чтобы пользователь имел возможность запускать программы какrootтаковые, тогда это должно быть выполнено какой-либо запущенной службой, внешней по отношению к процессам пользователя. ... Может помочь, если вы скажете нам цель скрипта, который вы хотите запустить.