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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Qt 4.x.x Linux] Глобальные настойки приложения  (Прочитано 5926 раз)
vregess
Гость
« : Август 22, 2007, 13:26 »

Нужно организовать работу с настройками прользователей и глобальными настройками приложения:
- настройки пользователей в ~/myapp;
- глобальные настройки в /etc/myapp или /usr/share/myapp;

Использую QSettings.
Для пользовательских - все норм., а для глобальных не хватает прав доступа.
При использовании QSettings::SystemScope запись в глобальные настройки запрещена...

Можно ли средствами qt добиться записи в системные дирректории? или самому делать?
Записан
-QT-
Гость
« Ответ #1 : Август 22, 2007, 13:41 »

Как мне кажется, настройки лучше хранить в /usr/share/myapp
А не записывает потому что права необходимо установить на файл изначально наверное.
Или запускать это приложение с правами необходимыми для работы в нужной папке.
Пример такой работы - PostgreSQL.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Август 24, 2007, 09:14 »

Обычно делается так - раз глобальные, то пишется туда где только root может менять - соотвественно для root отдельный модуль для изменнения этих параметров - а остальным только их читать
Записан
vregess
Гость
« Ответ #3 : Август 25, 2007, 06:09 »

Обычно делается так - раз глобальные, то пишется туда где только root может менять - соотвественно для root отдельный модуль для изменнения этих параметров - а остальным только их читать

Да, так и собрался делать.
Глобальные в /etc/myprog или /usr/share/myprog (пока еще не решил).
Вопрос в том как реализовать этот модуль работы с такимим настройками. Те полусается суть - как программно изменить права доступа программы (временно)?
Записан
vaprele07
Гость
« Ответ #4 : Август 25, 2007, 08:57 »

Можно так: выносишь модуль настроек в отдельное приложение и потом gksu kdesu sudo, в общем нужно все это дело в отдельном процессе.
Записан
vregess
Гость
« Ответ #5 : Август 25, 2007, 11:18 »

наод подумать...
Вообще, из-за чего появилась необходимость хранения глобальных настроек: просто нужно ограничить
доступ к одному из плагинов программы. Я решил это сделать при помощи запроса пароля. Вот и решил хранить
пароль в каком-нить файле в системной дирректории.
Под виндами там, вроде, проще... и как-то не задумывался сначала об этом.
А потом порт на *nix вот и встала проблема.
А в отдельное приложение вынести тут не получится, наверное.
Записан
vaprele07
Гость
« Ответ #6 : Август 25, 2007, 12:15 »

Зачем тогда заморачиваться  Шокированный создай  массив размером 32 байта в первый  с генерируй число от 1 до 27, запиши контрольные 4 байта по порядку в соответствующую позицию, в остальные пихани всякий мусор. Затем возьми мд5 хеш от пароля и хором по массиву, массив запиши в локальные настройки и радуйся. Иба твоя защита, глобальная-локальная, ломается одинаково. Предполагается, что в программе будет задан пароль по умолчанию, т.е. если не проходит проверка пароля по умолчанию вылетает окно запроса пароля.
Записан
vregess
Гость
« Ответ #7 : Август 26, 2007, 21:17 »

Предполагается, что в программе будет задан пароль по умолчанию, т.е. если не проходит проверка пароля по умолчанию вылетает окно запроса пароля.

Неудобно.

User1 знает пароль.
User2 знает пароль.
User1 сменил пароль.
User2 не знает пароль)

Каким образом можно добиться этого, как не глобальной настройкой?
Записан
vaprele07
Гость
« Ответ #8 : Август 27, 2007, 02:27 »

User1 знает пароль.
User2 знает пароль.
User1 сменил пароль.
User2 не знает пароль)

Каким образом можно добиться этого, как не глобальной настройкой?

Глобальной можно в таких вариантах:
1. User1 знает пароль на рута
2. работать через демона паролей, который запущен из под рута, до твоей программы.

Я так понял у тебя все юзеры лазают под одной учеткой? иначе хватало бы пароля на учетку и прав 600 на конфиг юзера. В принципе QSettings так и делает.
Записан
vregess
Гость
« Ответ #9 : Август 27, 2007, 08:37 »


Глобальной можно в таких вариантах:
1. User1 знает пароль на рута
2. работать через демона паролей, который запущен из под рута, до твоей программы.

Я так понял у тебя все юзеры лазают под одной учеткой? иначе хватало бы пароля на учетку и прав 600 на конфиг юзера. В принципе QSettings так и делает.

Нет. Пользователи лазят каждый под своим аккаунтом. В чем и вся проблема.
Я тут подумал, и решил пароль хранить совсем в другом месте)
Прога предназначена для настройки оборудования по протоколу modbus. Возможно. лучше хранить пароль в самом устройстве и по необходимости запрашивать его у самого устройства.
Тогда все должны быть довольны.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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