В каждом Linux есть очень хитрый трюк, который позволит вам это сделать. Он называется битом setUI.
Имейте в виду, что вам нужно будет жестко заблокировать разрешения в этом файле, чтобы это было безопасно.
Сделайте файл принадлежащим корню и корню группы:
sudo chown root.root <my script>
Теперь установите бит SetUID, сделайте его исполняемым для всех и доступным для записи только для root:
sudo chmod 4755 <my script>
Имейте в виду, что если этот скрипт позволит какой-либо ввод или редактирование файлов, это также будет сделано от имени root.
Бит SetUID заставляет скрипт или двоичный файл всегда запускаться от имени владельца файла / двоичного файла, примером такого двоичного файла является 'passwd'.
Существует решение с использованием sudoers, вот пример, который вы могли бы использовать. Добавьте эти две строки в конец вашего файла sudoers. Вы можете использовать visudo для редактирования файла sudoers.
Просто чтобы убедиться, что вы в курсе; вам все равно придется запустить скрипт с sudo впереди. Единственная разница заключается в том, что он больше не должен запрашивать у вас пароль.