есть ли простой способ позволить пользователю работать (например),
/usr/bin/pacman -S -u
как корень, не позволяя ему работать
/usr/bin/pacman -S -u some_package
?
Строка
user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u
позволяет обоим, и
user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""
кажется, семантически эквивалентен.
Поскольку Ваш случай пробует что-то вроде этого:
Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN
Можно использовать шаблоны шарика оболочки как [a-z], [0-9], * и т.д. в sudoers файле для исключения пакетов, которые соответствуют определенному шаблону.
Запишите сценарий, который делает то, что Вы хотите и предоставляете sudo доступ к нему.
Также удостоверьтесь, что независимо от того, что среда, в которой это выполняется, не имеет доступа к сетям вообще, или они могут просто использовать свой собственный DNS, чтобы имитировать зеркало и затем выполнить произвольный код как корень, когда это установлено pacman.