Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: INZER от Сентябрь 04, 2013, 09:16



Название: Авторизация
Отправлено: INZER от Сентябрь 04, 2013, 09:16
День добрый!

Необходимо написать модуль авторизации при запуске программы ... вроде бы все просто и не ожидал проблем с данной задачей
НО авторизация должна быть от лица системного пользователя.
Собственно вопрос: где взять список пользователей системы и как сравнивать пароли (как они шифруются и где хранятся).

Заранее спасибо.

PS: OS Linux Ubuntu.


Название: Re: Авторизация
Отправлено: Hellraiser от Сентябрь 04, 2013, 09:29
Читать файлы /etc/passwd и /etc/shadow. В passwd список пользователей, в shadow - хэши паролей (как правило, в md5). shadow доступен только root`у


Название: Re: Авторизация
Отправлено: GreatSnake от Сентябрь 04, 2013, 10:01
Собственно вопрос: где взять список пользователей системы и как сравнивать пароли (как они шифруются и где хранятся).
Собственно из ответа Hellraiser наверное уже понятно, что это тупиковый путь.
Единственный способ - это запуск приложения через su. Для десктопов есть запускалка (http://www.prog.org.ru/index.php?topic=18151.msg121848#msg121848).


Название: Re: Авторизация
Отправлено: BuRn от Сентябрь 04, 2013, 11:24
Мне кажется, или вы сейчас противоречите политике linux ?


Название: Re: Авторизация
Отправлено: GreatSnake от Сентябрь 04, 2013, 11:26
Мне кажется, или вы сейчас противоречите политике linux ?
Это к кому вопрос?


Название: Re: Авторизация
Отправлено: BuRn от Сентябрь 04, 2013, 11:43
Мне кажется, или вы сейчас противоречите политике linux ?
Это к кому вопрос?
к креатору темы


Название: Re: Авторизация
Отправлено: voral от Сентябрь 04, 2013, 11:48
Пользователь уже залогинился в систему, зачем заставлять его делать это еще раз? Просто получить в программе имя текущего пользователя системы не то?


Название: Re: Авторизация
Отправлено: BuRn от Сентябрь 04, 2013, 11:49
Пользователь уже залогинился в систему, зачем заставлять его делать это еще раз? Просто получить в программе имя текущего пользователя системы не то?
root != user


Название: Re: Авторизация
Отправлено: voral от Сентябрь 04, 2013, 11:53
root != user
При чем тут root? Здесь он нужен только в том случае если ТС все таки захочет воспользоваться файлом паролей. Что есть очень плохо.
Я говорил о том, что зачем вообще программе форма авторизации если пользователи те же, что в системе.

[OFF]
root - тоже вполне себе пользователь. Только вот работать залогиненым как root не Тру.
[/OFF]


Название: Re: Авторизация
Отправлено: Alex Custov от Сентябрь 04, 2013, 12:04
Используй PAM


Название: Re: Авторизация
Отправлено: BuRn от Сентябрь 04, 2013, 13:06
root != user
При чем тут root? Здесь он нужен только в том случае если ТС все таки захочет воспользоваться файлом паролей. Что есть очень плохо.
Я говорил о том, что зачем вообще программе форма авторизации если пользователи те же, что в системе.

[OFF]
root - тоже вполне себе пользователь. Только вот работать залогиненым как root не Тру.
[/OFF]


Цитировать
Собственно вопрос: где взять список пользователей системы и как сравнивать пароли (как они шифруются и где хранятся).
Хэши паролей лежат в шадовс, а к нему на сколько я знаю доступ есть только у root


Название: Re: Авторизация
Отправлено: voral от Сентябрь 04, 2013, 14:07
Хэши паролей лежат в шадовс, а к нему на сколько я знаю доступ есть только у root
Так я ж предложил вообще отказаться от авторизации, т.к. пользователь уже залогинен в системе. Следовательно пароль уже вводил правильный.