crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как выполнить команду через sudo, Не могу заставить sudo работать
AndreyR
  опции профиля:
сообщение 18.2.2011, 19:46
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.1.2011
Пользователь №: 2376

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте. Возникла необходимость выполнить в программе на Linux команду fdisk, которая требует админских привилегий. Попытался выполнять ее через sudo, но проблема в том, что вызывая, например, sudo fdisk -l /dev/sda через QProcess, не получается передать sudo пароль. Пытался загружать его вот так:

commandProc.start("sudo", params);
commandProc.waitForStarted(30000);
commandProc.write(password);
commandProc.closeWriteChannel();
commandProc.waitForFinished(4000);

но получается "unknown error". Подскажите пожалуйста, можно ли выполнить sudo как-нибудь по другому? Есть вариант использовать команды gksudo, kdesudo, но как-то это мудрено, опять таки зависимость от оконной среды, не хочется прибегать к таким мутным вариантам.

О :blink: Не в тот раздел попал, перенесите пожалуйста
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
AndreyR
  опции профиля:
сообщение 20.2.2011, 20:38
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 29.1.2011
Пользователь №: 2376

Спасибо сказали: 0 раз(а)




Репутация:   0  


kwisp, спасибо. Сработало.
Может кому-то пригодится, я делал вот так:

commandProc.start("/bin/bash");
commandProc.waitForStarted(3000);

//123456 - пароль. \n - имитирует нажатие Enter.
commandProc.write("echo 123456 | sudo -S fdisk -l /dev/sda\n");
commandProc.waitForFinished(4000);

QByteArray ta = commandProc.readAll();


Получается только если запустить bash. Вызов sudo напрямую через QProcess не дает результата никак.
Причина редактирования: теги!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 16:53