Как установить разрешения для динамически связанных файлов?

У меня есть установщик InstallScript, который использует динамические ссылки на файлы для нескольких компонентов. Эти компоненты содержат файлы конфигурации, которые обычные пользователи должны иметь возможность редактировать. Недавно мы обнаружили, что когда эти файлы устанавливаются на Windows Server 08, разрешения устанавливаются на полный доступ для группы «Администраторы», но доступ только для чтения и выполнения для группы «Пользователи». Обычное место установки — C:\programName.

Я пробовал создавать новые файлы вручную в качестве администратора (щелчок правой кнопкой мыши — новый текстовый файл) в каталоге C:\programName, и они генерируются с одинаковыми разрешениями. Я предполагаю, что это просто стандартная настройка разрешений для новых файлов.

Есть ли способ в InstallShield установить разрешения для динамически связанных файлов или каталога, содержащего их?

Я искал настройки разрешений в

  • Организация -> Компоненты
  • Данные приложения -> Файлы и папки

но я ничего не нашел. В документации по динамическим ссылкам на файлы не упоминаются разрешения.

Мы используем InstallShield 2010.


person sjohnston    schedule 16.05.2011    source источник


Ответы (2)


Как правило, эти разрешения — это хорошо; они унаследованы от своих родительских папок. Пользователи без прав администратора (включая администратора с ограниченным доступом до принятия запроса UAC) не должны иметь возможности изменять файлы в Program Files или C:, поэтому я предлагаю решить эту проблему в вашем приложении (например, используя папку «Документы» каждого пользователя). Поскольку вы не говорите о том, зачем вам это нужно, трудно с уверенностью сказать, относится ли это к вашему случаю.

Если окажется, что имеет смысл решить эту проблему при установке, а не в приложении, вы можете использовать SetObjectPermissions API для программной установки разрешений.

person Michael Urman    schedule 17.05.2011
comment
Это похоже на жизнеспособное решение, спасибо. (Я понимаю, что обход стандартных политик безопасности далеко не идеален, но это решение принимает не я.) - person sjohnston; 17.05.2011

На странице "Файлы и папки" щелкните файл или папку правой кнопкой мыши, выберите Свойства и нажмите кнопку Разрешения. В диалоговом окне «Разрешения» вы можете щелкнуть правой кнопкой мыши список Имена и использовать пункт контекстного меню Создать, чтобы добавить новое разрешение.

Если параметр недоступен для файла, вы можете попробовать установить его для родительской папки.

person cosmin    schedule 17.05.2011
comment
К сожалению, я не вижу параметр «Разрешения» в свойствах папки целевого компьютера. Я не могу проверить отдельные файлы, так как они не отображаются в представлении «Файлы и папки» (они создаются при сборке проекта непосредственно перед сборкой установщика). - person sjohnston; 17.05.2011