Разрешения WiX, как выразить «Изменить» в терминах флагов DACL

Я пытаюсь применить пользовательские права к папке как часть установщика WiX 3.0.4318.0.

Что касается пользовательского интерфейса свойств безопасности в проводнике, я хочу добавить Modify к правам для BUILTIN \ Users. Очевидно, он должен быть устойчивым к локализации имени пользователя. Итак, исходя из моих исследований на сегодняшний день, я хочу как минимум:

<CreateFolder Directory="XYZ" >
    <PermissionEx User="[WIX_ACCOUNT_USERS]" 
         GenericRead="yes" GenericWrite="yes" Delete="Yes" />
</CreateFolder>

Вопросов:

  1. Я делаю это в подкаталоге - правильно ли я предполагаю, что выбор между Permission и PermissionEx является спорным?

  2. Что означает «Изменить» в диалоговом окне «Права доступа к папке» в проводнике с точки зрения прав - я вижу много примеров, в которых люди перевели его на магическое число или большой набор флагов - что использовали другие люди (намерение состоит в том, чтобы разрешить создавать, читать, писать, добавлять и удалять, что лучше всего выражается в пользовательском интерфейсе с точки зрения простых прав как «Изменить»). Я посмотрел на базовые разрешения с icacls, который сообщает мне, что он называется «M», но у меня нет способа сопоставить их с «конкретными правами» (в терминах, используемых icacls /?). Есть еще одна таблица сопоставления в справке Windows. У кого-нибудь есть авторский ответ, который сработал?

Есть очень похожий вопрос без ответа на вопрос относительно PermissionEx (WIX), что было бы жестоко. но справедливо цитировать как дубликат.


person Ruben Bartelink    schedule 19.08.2009    source источник
comment
Право на изменение, кажется, расширяется до ReadData | WriteData | AppendData | ReadExtendedAttributes | WriteExtendedAttributes | ExecuteFile | ReadAttributes | WriteAttributes | Удалить | ReadPermissions (в перечислении CLR System.Security.AccessControl.FileSystemRights)   -  person leiflundgren    schedule 26.04.2011
comment
@leiflundgren: спасибо - если бы это был ответ, я бы, скорее всего, проголосовал за и приму!   -  person Ruben Bartelink    schedule 04.05.2011


Ответы (3)


Следующие комбинации - вот что я нашел

разрешение на изменение:

<util:PermissionEx GenericRead="yes" GenericWrite="yes"
   GenericExecute="yes" Delete="yes" DeleteChild="yes" User="SOMEUSER" />

разрешение на "чтение":

<util:PermissionEx Read="yes" GenericRead="yes" User="SOMEUSER" />
person Paul George    schedule 21.12.2011

После некоторой дополнительной работы над этим я сделал следующие выводы:

  1. В 3.0.5419.0 PermissionEx vs util: "PermissionEx vs Permission становится спорным, и не требуется Extended =" true ", как вы видите в сети с предыдущими версиями. Предыдущие версии выдают ошибки при разрешении BUILTIN \ USERS во время выполнения.
  2. Выбор трех выбранных мной прав, похоже, соответствует требованиям моего контекста.

Мне все еще очень интересно увидеть другие отзывы, поскольку я остаюсь WiX-noob.

person Ruben Bartelink    schedule 20.08.2009

Чтобы получить его точно так же, как если бы вы установили разрешения вручную в Windows 7 и Windows XP с помощью WiX 3.6, вам необходимо использовать следующее:

<util:PermissionEx 
    User="Users" Domain="BUILTIN" 
    GenericWrite="yes" GenericExecute="yes" GenericRead="yes" 
    Delete="yes" Synchronize="yes" />
person Adam Zuckerman    schedule 11.11.2012