Должен я давать "изменить" полномочия 'всем' или 'пользователям' или 'authusers', если, в соответствии с контролем учётных записей, я хочу сделать папки данных и файлы перезаписываемыми неадминистраторским пользователям программы?
Я хочу это в основном все, кто может сидеть в компьютере, может чтение-запись данные через программу. Я также считал, что использование 'всех' для изменяет разрешение, может открыть дыру в системе безопасности по сети. Каково различие между всеми, пользователями и authusers? Каковы последствия безопасности?
Детали реализации для InnoSetup следуют:
Используя InnoSetup, я устанавливаю EXE в стандартной подпапке Program Files и подпапке Data в ней, как это:
C:\Program Files\My Prog\Prog.exe
C:\Program Files\My Prog\Data\MyData.dat
Теперь, для создания его так, чтобы MyData.dat мог быть изменен Prog.exe, даже если Prog.exe запускается неадминистратором пользователи я даю, "изменяют" полномочия к подпапке "Data" с этой строкой:
[Dirs]
Name: "{app}\Data"; Permissions: everyone-modify;
;This is the question: should I use users or authusers instead of everyone?
[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Flags: replacesameversion;
Source: "MyData.dat"; DestDir: "{app}\Data"; Flags: replacesameversion;
Этот вопрос подобен 2686918, но я не нашел достаточно информации там о типах полномочий, следовательно этот новый. Я обновлю тот вопрос после разъяснения этого.
InnoSetup в особенности определяет эти группы:
Кто из тех является ближайшим "любому пользователю, который сидит в машине, администраторе, неадминистраторе, или что бы то ни было, но никто, кто получает доступ к машине из сетей"?
Вы идете не туда! Не храните данные вашего приложения под %PROGRAMFILES%
! Используйте предназначенный для этого каталог: CSIDL_APPDATA
Проконсультируйтесь с Microsoft, если хотите получить больше информации об идентификаторах безопасности.