Назад | Перейти на главную страницу

Запускать команды preseed от имени конкретного пользователя / переключения пользователей

Помимо обычной настройки, в которой я создаю обычного пользователя foo, Я хочу запустить несколько
d-i preseed/late_command команды как это foo пользователь.

Моя первоначальная мысль заключалась в том, чтобы просто вызвать эти команды с помощью sudo, например:
d-i preseed/late_command in-target echo "<pwd>" | sudo -Si <command>.
Это работает для каких-то команд. Однако проблема в том, что некоторые команды загружают сценарии оболочки, которые требуют не запускаться с помощью sudo.

Выпуск su -c "<command>" было бы альтернативой, но su не предлагает возможность прочитать пароль из stdin.

Безопасно ли переключаться между пользователями, используя su (И если да, то как мне предоставить стандартный ввод? И он работает или просто приводит к su: must be run from a terminal) или это вызовет проблемы?

Может быть, подумайте о том, чтобы изучить команду "ожидать".

expect - programmed dialogue with interactive programs

Это позволит вам отправить пароль su. Он должен работать из d-i preseed / late_command.