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: Не в тот раздел попал, перенесите пожалуйста
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 18.2.2011, 20:04
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(AndreyR @ 18.2.2011, 21:46) *
не получается передать sudo пароль
лучше, ждать отклика приложения (sudo), т.е. ловить то что оно печатает. Наверняка оно печатает, что-то типа:
"enter password:"
и только потом ожидает пароля
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 22.12.2024, 11:02