Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
 Где лучше всего хранить настройки?  [new]
m52
Member

Откуда:
Сообщений: 738
Здравствуйте!

Пишу 2 программы.
Подскажите, где лучше всего хранить файл с настройками?

Ситуация такая: есть файл настроек и есть 2 программы
1) программа-служба, запускаемая под учёткой SYSTEM
2) Windows-приложение, запускаемое под разными пользователями (смотря кто вошел в систему).
Обе программы должны иметь возможность централизованно писать и читать из файла настройки.

Хотел хранить настройки в C:\Documents and Settings\All Users\Application Data, но тогда подскажите, будут ли иметь права на запись служба, запущенная под SYSTEM и все Пользователи, вошедшие в систему?

Может еще какую папку для хранения настроек подскажете? Реестр не предлагать.

Заранее благодарен,
Михаил
27 авг 10, 20:41    [9340642]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

m52
будут ли иметь

Будут. Но тебе нажать на ней правой кнопкой мыши и на вкладке "Безопасность" увидеть всё
собственными глазами было быстрее, чем мне написать это сообщение.

Posted via ActualForum NNTP Server 1.4

27 авг 10, 20:55    [9340696]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
m52
Member

Откуда:
Сообщений: 738
Странно то, что я написал маленькую программу-службу, которая создает файл
C:\Documents and Settings\All Users\Application Data\1.txt и пишет в него несколько символов текста.

Служба стартанула от имени SYSTEM а в момент создания файла выдала ошибку:
"File Access Denied"

Как вы можете это объяснить? Неужели у SYSTEM нет прав на запись в папку
C:\Documents and Settings\All Users\Application Data
?
27 авг 10, 21:06    [9340721]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

m52

Странно то, что я написал маленькую программу-службу, которая создает файл
C:\Documents and Settings\All Users\Application Data\1.txt и пишет в него несколько
символов текста.

Служба стартанула от имени SYSTEM а в момент создания файла выдала ошибку: "File Access
Denied"

Как вы можете это объяснить?

Кривыми руками, наверное. Потому что я только что установил свою программу-службу,
запустил её от имени SYSTEM и она создала файл в "C:\Documents and Settings\All
Users\Application Data\IBPReplicator\" без проблем.

Posted via ActualForum NNTP Server 1.4

27 авг 10, 22:02    [9340978]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6330
m52,

ОСя какая, а то в Висте и выше все сложнее?
28 авг 10, 10:25    [9342194]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
С0ВЕСТЬ
Member [заблокирован]

Откуда:
Сообщений: 37847
Проще в реестр
28 авг 10, 11:17    [9342273]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
m52
Member

Откуда:
Сообщений: 738
Извините, что-то я не так делал.
Только что проверил, SYSTEM может спокойно записывать в папку C:\Documents and Settings\All Users\Application Data

Это был тест для XP.
Если у Windows 7, Vista, Server 2003, Server 2008 тоже с этим проблем не будет, то будем считать, что папка "C:\Documents and Settings\All Users\Application Data" является отличным местом для централизованного хранения настроек.

Всем спасибо.
28 авг 10, 11:33    [9342300]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

С0ВЕСТЬ
Проще в реестр

Вот только этот вариант совершенно неработоспособен. А так да, проще.

Posted via ActualForum NNTP Server 1.4

28 авг 10, 13:01    [9342481]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Ты просто не умеешь их готовить.
28 авг 10, 13:34    [9342558]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
m52
Member

Откуда:
Сообщений: 738
автор

Проще в реестр

Вот только этот вариант совершенно неработоспособен. А так да, проще.

Dimitry Sibiryakov, подскажите для общего развития, почему запись в реестр - неработоспособный вариант? В чем могут быть проблемы при записи в реестр?
28 авг 10, 13:49    [9342595]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Никаких, кроме системных ключей, с которым оперирует или служба или инсталятор. Как видим и тут нет проблем, есть только отсутсвие прав. А для не системных приложений и это не проблема, если не лезть в ключ System.
28 авг 10, 14:00    [9342606]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
С0ВЕСТЬ
Member [заблокирован]

Откуда:
Сообщений: 37847
HKEY_CURRENT_USER\Software - для любого пользователя
HKEY_LOCAL_MACHINE\SOFTWARE
28 авг 10, 14:06    [9342615]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

m52
В чем могут быть проблемы при записи в реестр?

HKCU для каждого пользователя свой, а в HKLM простого пользователя не пустят.

Posted via ActualForum NNTP Server 1.4

28 авг 10, 14:07    [9342619]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Dimitry Sibiryakov

m52
В чем могут быть проблемы при записи в реестр?

HKCU для каждого пользователя свой, а в HKLM простого пользователя не пустят.

А простому пользователю там делать нечего, там настройки для ВСЕХ, ими управляет администратор, а у него права есть.
28 авг 10, 14:31    [9342654]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Если каждый пользователь может ковыряться своими грязными руками там, то это ошибка дизайна, просто выбран не тот раздел.
28 авг 10, 14:32    [9342657]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

Anatoly Podgoretsky

А простому пользователю там делать нечего, там настройки для ВСЕХ, ими управляет
администратор, а у него права есть.

А теперь перечитываем первый пост:
m52
Обе программы должны иметь возможность централизованно писать и
читать из файла настройки.

Posted via ActualForum NNTP Server 1.4

28 авг 10, 15:01    [9342722]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Ну читаем и видим дурдом, если это про пользователей, а не про администратора.
Некий Вася Пупкин все разрушит для других
C:\Documents and Settings\All Users\Application Data, аналогично, в основном доступ только чтение для пользователей и именно по этой причине.
28 авг 10, 15:18    [9342766]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
m52
Member

Откуда:
Сообщений: 738
Как выяснилось, рано я обрадовался, когда решил, что обычные Пользователи имеют право записи в папку "C:\Documents and Settings\All Users\Application Data\NewFolder", если NewFolder создана другим пользователем, в частности SYSTEM.

А вот члены группы "Опытные Пользователи" могут записывать в чужие папки, например,
в ту же "C:\Documents and Settings\All Users\Application Data\NewFolder".


Вопрос: есть ли вообще единая папка с разрешением записи разными "Пользователями" (не Опытными) ? Или это из области фантастики?

И вообще, как часто на предприятиях пользователям ограничивают права до обычного "Пользователя" ? Ваше мнение?
28 авг 10, 20:18    [9343564]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

m52

И вообще, как часто на предприятиях пользователям ограничивают права до обычного
"Пользователя" ? Ваше мнение?

Если на предприятии есть сисадмин, то - всегда.

Posted via ActualForum NNTP Server 1.4

28 авг 10, 20:24    [9343582]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819

m52
если NewFolder создана другим пользователем, в частности SYSTEM.

В этом случае создавший папку просто должен установить права на неё. И всем будет счастье.
RTFM MSDN.

Posted via ActualForum NNTP Server 1.4

28 авг 10, 20:29    [9343595]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
m52

Как выяснилось, рано я обрадовался, когда решил, что обычные Пользователи имеют право записи в папку "C:\Documents and Settings\All Users\Application Data\NewFolder", если NewFolder создана другим пользователем, в частности SYSTEM.

А вот члены группы "Опытные Пользователи" могут записывать в чужие папки, например,
в ту же "C:\Documents and Settings\All Users\Application Data\NewFolder".


Вопрос: есть ли вообще единая папка с разрешением записи разными "Пользователями" (не Опытными) ? Или это из области фантастики?

И вообще, как часто на предприятиях пользователям ограничивают права до обычного "Пользователя" ? Ваше мнение?

Это вообще то норма. Собственно какая разница, если приложение не будет работать?

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

Опытные пользователи это практически администраторы

Расчитывать на то, что это будет опытный пользователь наивно.

Других мест для всех нет. Но делаться это должно так (одинаково для реестра и папок). Настройки общие для всех пишутся в соответствующие папки/ключи и дальше от туда копируются каждому новому пользователю, у которого они хранятся в личных папках/HKCU, а там уже пользователь может их редактировать, не влияя на прочих пользователей, что соответсвует корпоративным правилам. Нельзя просто так повышать права пользователей из-за того, что то или другое приложение сделано неверно.
28 авг 10, 21:13    [9343715]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Dimitry Sibiryakov

m52

И вообще, как часто на предприятиях пользователям ограничивают права до обычного
"Пользователя" ? Ваше мнение?

Если на предприятии есть сисадмин, то - всегда.

И там где нет обычно бардак, все имеют права администраторов, от туда и начинаются вирусные эпидемии. Это кстати бывает и при наличии администратора, не везде порядок.
28 авг 10, 21:15    [9343721]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
m52
Как выяснилось, рано я обрадовался, когда решил, что обычные Пользователи имеют право записи в папку "C:\Documents and Settings\All Users\Application Data\NewFolder", если NewFolder создана другим пользователем, в частности SYSTEM.

Пользователь тут особо непричем, тут важнее наследование прав от родительской папки. Пользователь SYSTEM особый случай.
28 авг 10, 21:21    [9343739]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Flying-home
Member

Откуда: kart.vrostove.net
Сообщений: 14957
Отвечаю на вопрос.
Надо сделать два файла настроек. Один - админский, один - юзверьский. Последний хранится в профиле пользователя и подгружает дефолтные значения из админского, если пуст. Логика системы безопасности винды такова. Не надо давать пользователю возможность править то, что в результате "правки" повлечет общий сбой программы под другой учеткой.
30 авг 10, 10:57    [9347712]     Ответить | Цитировать Сообщить модератору
 Re: Где лучше всего хранить настройки?  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62912
Не надо давать права на профиль администратора.
30 авг 10, 11:24    [9347954]     Ответить | Цитировать Сообщить модератору
Все форумы / Windows Ответить