Выполнить внешнее приложение как root - проблема - PullRequest
0 голосов
/ 01 февраля 2011

Доброе утро:

Я пытаюсь запустить внешнее приложение, которое должно выполняться от имени пользователя 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 ]

0 голосов
/ 01 февраля 2011

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

sudo -iu root

вместо су

0 голосов
/ 01 февраля 2011

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

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

...