Запускать команды 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) или это вызовет проблемы?

1 ответ

Может быть, рассмотреть вопрос о команде "ожидать".

expect - programmed dialogue with interactive programs

Это позволит вам отправить пароль su. Это должно работать из di preseed/late_command.

Другие вопросы по тегам