Russian Qt Forum
Ноябрь 22, 2024, 13:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
su и qt
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: su и qt (Прочитано 9677 раз)
insamo
Гость
su и qt
«
:
Июнь 01, 2010, 14:54 »
Я новичек в QT и C++.
Мне надо сделать так чтобы вызывалась програмка su (ну это вобщем не проблема через класс QProcess), а потом вылавливалась сообщение о вводе пароля (вот здесь как раз начинаются проблемы). Т.е. надо вывести диалог с запросом имени пользователя и пароля и передать это как-нибудь консольке. У кого есть идеи на счет этого, подскажите пожалуйста.
Записан
zenden
Гость
Re: su и qt
«
Ответ #1 :
Июнь 01, 2010, 15:53 »
А может нада вызвать gksu? или чето в этом роде
Записан
insamo
Гость
Re: su и qt
«
Ответ #2 :
Июнь 01, 2010, 17:24 »
Цитата: zenden от Июнь 01, 2010, 15:53
А может нада вызвать gksu? или чето в этом роде
Можно, но надо чтобы была программа независимая от других пакетов.
Записан
SimpleSunny
Гость
Re: su и qt
«
Ответ #3 :
Июнь 01, 2010, 18:10 »
Смотри в сторону этих методов у QProcess.
read ( qint64 ) : QByteArray
write ( const QByteArray & ) : qint64
Диалог ввода пароля сам смастери.
Записан
insamo
Гость
Re: su и qt
«
Ответ #4 :
Июнь 02, 2010, 11:22 »
Раха, сейчас попробуем
Записан
insamo
Гость
Re: su и qt
«
Ответ #5 :
Июнь 02, 2010, 12:44 »
Цитата: SimpleSunny от Июнь 01, 2010, 18:10
Смотри в сторону этих методов у QProcess.
read ( qint64 ) : QByteArray
write ( const QByteArray & ) : qint64
Диалог ввода пароля сам смастери.
#include <QtCore/QCoreApplication>
#include <QProcess>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QProcess su;
su.startDetached("su");
su.write("password");
su.closeWriteChannel();
a.exec();
}
Попробовал но ничего не выходит, процесс запускается, выводит приглашение ввести пароль, su.write("password"), не принимает.
И почему-то обычный запуск QProccess::start() неработает выдает статус FailedToStart.
Походу где-то собака порылась
.
Записан
b-s-a
Гость
Re: su и qt
«
Ответ #6 :
Июнь 02, 2010, 20:22 »
su напрямую работает с терминалом. ей обычного пайпа недостаточно - защита от подбора паролей.
Записан
insamo
Гость
Re: su и qt
«
Ответ #7 :
Июнь 03, 2010, 09:16 »
Цитата: b-s-a от Июнь 02, 2010, 20:22
su напрямую работает с терминалом. ей обычного пайпа недостаточно - защита от подбора паролей.
Понятно
. А есть другие пути? Мне очень надо. Кроме kdesu и gksu есть другие пакеты работающие с su.
Записан
SimpleSunny
Гость
Re: su и qt
«
Ответ #8 :
Июнь 03, 2010, 10:03 »
А что нужно. Чтобы часть программы выполнялась с правами администратора или запустить некоторый скрипт с root правами?
Записан
insamo
Гость
Re: su и qt
«
Ответ #9 :
Июнь 03, 2010, 10:04 »
запустить программу от рута, чтобы она от него выполнялась.
Записан
SimpleSunny
Гость
Re: su и qt
«
Ответ #10 :
Июнь 03, 2010, 10:31 »
Используйте sudo для этих целей.
Записан
insamo
Гость
Re: su и qt
«
Ответ #11 :
Июнь 03, 2010, 11:12 »
Цитата: SimpleSunny от Июнь 03, 2010, 10:31
Используйте sudo для этих целей.
sudo не подойдет нужен root
Записан
crossly
Гость
Re: su и qt
«
Ответ #12 :
Июнь 03, 2010, 11:22 »
а вы хоть понимаете что есть sudo и что есть root??
Записан
insamo
Гость
Re: su и qt
«
Ответ #13 :
Июнь 03, 2010, 11:26 »
Цитата: crossly от Июнь 03, 2010, 11:22
а вы хоть понимаете что есть sudo и что есть root??
канечно понимаю, sudo это выполнить от муперпользователя, а root - это пользователь которому все позволено. Так вот проблема заключается в том что при запуске через судо не подгружаются много модулей программы, а от рута все работает, и от простого пользователя работает, но не может схранять конфиги в /etc/. Вот такая вот дилема.
Записан
b-s-a
Гость
Re: su и qt
«
Ответ #14 :
Июнь 04, 2010, 11:57 »
можно для этого использовать sticky-bit (или как его там). В этом случае, программа будет запускаться от имени того пользователя, который является ее владельцем (т.е. если владелец root:users, то при запуске будет сосздан процесс с правами рута - так работает su, sudo и аналоги).
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...