Как запустить скрипт от имени пользователя root и текущего пользователя одновременно?

Я хочу написать сценарий оболочки, который потребует привилегии sudo для выполнения определенной задачи, но также необходимо изменить определенную конфигурацию как текущий пользователь. Я хочу максимально автоматизировать сценарий, чтобы он не требовал вмешательства пользователя.

У меня проблема в том, что если я запустил весь скрипт как sudo , я не смогу изменить конфигурацию текущего пользователя. Но если я просто добавлю sudo к конкретной команде, для которой требуются права суперпользователя, мне нужно будет ввести пароль, потому что сценарий длинный и sudo .

Есть ли способ запустить скрипт у текущего пользователя, но сохранить привилегию sudo когда мне это нужно?

Есть два основных пути:

  • отделите подзадачу, для которой требуется доступ с правами root, в другую программу / скрипт и запустите эту часть от имени пользователя root (либо через двоичный файл setuid root, либо через sudo )

  • запустить все это как root, и выполнить ту часть, которую нужно запустить как обычный пользователь через su - user