Talvez considere investigar o comando "esperar".
expect - programmed dialogue with interactive programs
Ele permitirá que você envie uma senha para o su. Deve funcionar a partir de d-i preseed / late_command.
Além da configuração usual em que eu crio um usuário normal foo , eu quero executar alguns comandos d-i preseed/late_command como foo user.
Meu primeiro pensamento foi simplesmente chamar esses comandos com sudo , por exemplo: d-i preseed/late_command in-target echo "<pwd>" | sudo -Si <command> .
Isso funciona para algum tipo de comando. No entanto, o problema é que alguns dos comandos carregam scripts de shell que exigem que não seja executado com o sudo.
Emitir um su -c "<command>" seria uma alternativa, mas su não oferece a possibilidade de ler a senha de stdin .
É seguro navegar entre os usuários usando su (E se sim, como eu forneço o stdin? e funciona ou apenas resulta em su: must be run from a terminal ) ou isso causaria problemas?