Выполнить внешнее приложение как root - проблема

Доброе утро:

Я пытаюсь запустить внешнее приложение, которое должно быть выполнено от имени пользователя root. Я должен прочитать строки из выхода после выполнения этого приложения, но там написано "Отказано в разрешении", как будто это сделано неправильно. Я долго думал и не могу двигаться вперед. Код выглядит следующим образом:

process = Runtime.getRuntime().exec("su");
String[] command = {external application command};
process = Runtime.getRuntime().exec(comando);
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = null;
try
{
   bufferedReader = new BufferedReader(new
       InputStreamReader(inputStream),8192);
   String line = null;
   while ((line = bufferedReader.readLine()) != null)
   {
      System.out.println("read line:"+line );
   }
}
catch (IOException ioe)
{
  ioe.printStackTrace();
}
process.waitFor();

Кто-нибудь знает, почему не позволил мне запустить команду?

Благодарю.

2 ответа

Что насчет попыток

sudo -iu root

вместо су

Есть ли у вас ошибки при попытке запуска su? (Я полагаю, вы бы, так как su вероятно, откроет терминал напрямую, чтобы запросить пароль; su не будет просто читать стандартный ввод для пароля.)

Есть ли у вас ошибки или успех при попытке запустить простую программу, например /usr/bin/cat /etc/passwd? Можно также начать с простого и посмотреть, сможете ли вы заставить его работать, прежде чем пытаться выполнять более сложные программы.

Другие вопросы по тегам