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?