Запускать команды 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.