Executa comandos preseed como usuário específico / alternando usuários

1

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?

    
por pduersteler 07.10.2012 / 23:10

1 resposta

1

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.

    
por 11.10.2012 / 03:06