У меня есть сценарий, предназначенный для настройки моей системы после новой установки операционной системы. Большая часть того, что он делает, требует прав суперпользователя, но некоторые команды создают в домашнем каталоге файлы, такие как файл блокировки, в которые владелец указанного домашнего каталога должен иметь разрешение на запись. Чтобы избежать создания файлов для суперпользователя в моем собственном домашнем каталоге, а не в /root
, я требую, чтобы скрипт запускался с помощью sudo -i
и использовал sudo -iu "$SUDO_USER"
для выполнения команд от имени меня.
Это работает довольно хорошо в большинстве случаев, но теперь мне нужно выполнить команду, как если бы я запускал ее с помощью sudo
, а не sudo -i
. Как мне это сделать?
Плохое решение будет что-то вроде следующего:
sudo -iu "$SUDO_USER" << LF
sudo [command]
LF
Проблема с вышеупомянутым состоит в том, что sudo [command]
может запрашивать пароль, и этот сценарий должен быть неинтерактивным.