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


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(AndreyR @ 20.2.2011, 20:38) *
Получается только если запустить bash. Вызов sudo напрямую через QProcess не дает результата никак.

а если файл скрипта создать? можно даже из программы.
#!/bin/bash
echo 123456 | sudo -S fdisk -l /dev/sda 2>&1 ./fdisk.output

и его выполнить напрямую через QProcess
правда права на выполнение скрипта не знаю как выставить. но на этом форуме можно поискать.

ты ман sudo читал? там есть ещё ключ запускающий sudo в фоне. может пригодиться.
вообще надо почитать как именно выполняются процессы. может запуск в фоне или какой нить другой ключ предотвратят лишние действия такие как запуск ещё одной оболочки и проч....

П.С.
используй теги - это очень облегчает чтение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 28.3.2024, 20:24