Просто чтобы вернуться к методу 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
таковые, тогда это должно быть выполнено какой-либо запущенной службой, внешней по отношению к процессам пользователя. ... Может помочь, если вы скажете нам цель скрипта, который вы хотите запустить.