Russian Qt Forum
Ноябрь 25, 2024, 12:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Авторизация пользователя в Mac OS X [решено]  (Прочитано 13891 раз)
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #15 : Август 10, 2011, 16:14 »

dangree, чё куришь?
Qt изначально - библиотека визуальных кроссплатформенных компонентов. Причём здесь авторизация?
Записан

Юра.
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #16 : Август 10, 2011, 16:15 »

$echo <password> | sudo -S <command>
$echo <password> | sudo -u <username> -S <command>
Так не будет работать?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #17 : Август 10, 2011, 16:17 »

что за бред? Xcode - это среда разработки, а там приводится код для Mac OS X - его и надо использовать в приложении.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
dangreen
Гость
« Ответ #18 : Август 10, 2011, 16:32 »

что за бред? Xcode - это среда разработки, а там приводится код для Mac OS X - его и надо использовать в приложении.
тогда подскажи пожалусто что нужно инклудить чтобы заработал класс AuthorizationRef
Записан
dangreen
Гость
« Ответ #19 : Август 10, 2011, 16:39 »

$echo <password> | sudo -S <command>
$echo <password> | sudo -u <username> -S <command>
Так не будет работать?

а за вот это огромное тебе спасибо!)

осталось сваять диологовое окно похожее на нативное )
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #20 : Август 10, 2011, 16:43 »

что за бред? Xcode - это среда разработки, а там приводится код для Mac OS X - его и надо использовать в приложении.
тогда подскажи пожалусто что нужно инклудить чтобы заработал класс AuthorizationRef
мне надо читать документацию точно так же как и тебе - я не работал с авторизацией, а ссылку нашел нехитрым гуглением. но подозреваю, что нужно подключить Security.framework
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #21 : Август 10, 2011, 18:37 »

$echo <password> | sudo -S <command>
$echo <password> | sudo -u <username> -S <command>
Так не будет работать?

а за вот это огромное тебе спасибо!)

осталось сваять диологовое окно похожее на нативное )
Рано радуешься. Не будет это работать. Для ввода пароля в sudo требуется настоящий или псевдо терминал.

Судя по форуму многим это требуется. Всё никак руки не доходят написать виджет(
Вот здесь можно посмотреть на реализацию запуска ssh через QProcess.
« Последнее редактирование: Август 10, 2011, 18:40 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Август 10, 2011, 19:06 »

программа слишком коротко юзабельна чтобы делать для нее инсталлер, да и сама по себе является почти инсталлером,и с каких пор для прог под макось делают инсталлеры?
С очень давних. Частенько (в большинстве случаев) все что инсталлятор делает - предлагает скопировать приложение в Applications фолдер. Запрос на авторизацию от посторонней/малоизвестной программы пугает. Mac пользователей. Стандартный набор линукс файлов (config, install и др) также дискредетирует приложение в его глазах. Учить командую строку здесь не хотят и не любят, линукс пасется на заднем дворе. Так что может лучше "никак"
Записан
ieroglif
Гость
« Ответ #23 : Август 10, 2011, 19:42 »

иначе Qt - кака
если С++ не умеет варить кофе - зачем он нужен Непонимающий
отличный вывод  Смеющийся
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #24 : Август 10, 2011, 19:47 »

иначе Qt - кака
если С++ не умеет варить кофе - зачем он нужен Непонимающий
отличный вывод  Смеющийся
На самом деле может dangreen и прав. В QProcess явно не хватает поддержки под unix псевдо-терминалов.
Записан

Qt 5.11/4.8.7 (X11/Win)
dangreen
Гость
« Ответ #25 : Август 11, 2011, 10:56 »

сделал класс диалога, который спрашивает и узнает верен ли пароль

http://puu.sh/4egi

реализовано через (Ж) конечно... но пашет

и так, спасибо LisandreL за подсказку,
Код:
$echo <password> | sudo -S <command>
если пихать это в QProcess то процесс тупо следует тому что мы у него попросили, и он печатает "<password> | sudo -S <command>"
поэтому я решил создавать скрипт который буду запускать из QProcess,  но создаваемый файл не имел прав для комманды sudo
это решилось простой коммандой "chmod +x" которую я применял из кода в QProcess, комманда лечит права и при этом не требует рут права
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #26 : Август 11, 2011, 11:37 »

если пихать это в QProcess то процесс тупо следует тому что мы у него попросили, и он печатает "<password> | sudo -S <command>"
Скорми QProcess вот это:
Код
Bash
sh -c 'echo <password> | sudo -S <command>'
и не нужно никаких файлов.

Насчёт sudo...
А как быть, если у юзера нет прав на пользование sudo или разрешен запуск строго определенных команд?
Имхо, для универсальности нужно использовать 'su -'. Но вот для этого без псевдо-терминала уже никак (
Записан

Qt 5.11/4.8.7 (X11/Win)
dangreen
Гость
« Ответ #27 : Август 11, 2011, 11:54 »

если пихать это в QProcess то процесс тупо следует тому что мы у него попросили, и он печатает "<password> | sudo -S <command>"
Скорми QProcess вот это:
Код
Bash
sh -c 'echo <password> | sudo -S <command>'
и не нужно никаких файлов.

Насчёт sudo...
А как быть, если у юзера нет прав на пользование sudo или разрешен запуск строго определенных команд?
Имхо, для универсальности нужно использовать 'su -'. Но вот для этого без псевдо-терминала уже никак (

под макосью не встречал ограничений
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #28 : Август 11, 2011, 12:16 »

и все же я никак не могу понять почему бы просто не воспользоваться стандартной задокументированой технологией авторизации и не изобретать велосипед
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
dangreen
Гость
« Ответ #29 : Август 11, 2011, 12:26 »

и все же я никак не могу понять почему бы просто не воспользоваться стандартной задокументированой технологией авторизации и не изобретать велосипед

 я конечно тока за, буду пытаться разобраться, но документация на английском языке меня убивает
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.078 секунд. Запросов: 23.