Depois de horas e horas de pesquisas sem sucesso, resolvi abrir este fórum.
Alguém sabe alguma solução para executar um comando em root pelo Runtime.exec() ??
Já tentei capturar o processo e ler via process.getInputStream(), mas nada …
Não consegui achar nenhum parâmetro com o qual eu passe o password pela linha de comando.
Alguem ajuda???
Meio que não tem nada a ver com Java, mas você pode chamar o processo como “su -c COMANDO -l root”. Isso vai executar o comando como superusuário, perguntando a senha etc.
Você tentou isso?
Sim, tentei isso. Ele não pergunta a senha, mesmo vc capturando o Input do Process.
Mais duas coisas então que você pode tentar, talvez não se aplique/seja possível no seu ambiente:
- Utilize o sudo para executar o processo, no lugar do su. Você pode colocar o processo como sudoer sem perguntar senha, o que (acho que) resolve seu problema.
- Utilize o sudo para executar o java; o java todo fica como root, e o programa então deve herdar o usuário.