Я хочу написать сценарий оболочки, который потребует привилегии sudo
для выполнения определенной задачи, но также необходимо изменить определенную конфигурацию как текущий пользователь. Я хочу максимально автоматизировать сценарий, чтобы он не требовал вмешательства пользователя.
У меня проблема в том, что если я запустил весь скрипт как sudo
, я не смогу изменить конфигурацию текущего пользователя. Но если я просто добавлю sudo
к конкретной команде, для которой требуются права суперпользователя, мне нужно будет ввести пароль, потому что сценарий длинный и sudo
.
Есть ли способ запустить скрипт у текущего пользователя, но сохранить привилегию sudo
когда мне это нужно?
Есть два основных пути:
отделите подзадачу, для которой требуется доступ с правами root, в другую программу / скрипт и запустите эту часть от имени пользователя root (либо через двоичный файл setuid root, либо через sudo
)
запустить все это как root, и выполнить ту часть, которую нужно запустить как обычный пользователь через su - user