Разрешения WiX, как я могу выразить «Изменить» в терминах флагов DACL - PullRequest
4 голосов
/ 19 августа 2009

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

С точки зрения пользовательского интерфейса свойств безопасности в проводнике, я хочу добавить Изменить к правам для 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) , который было бы жестоко, но справедливо назвать его дубликатом.

Ответы [ 3 ]

3 голосов
/ 21 декабря 2011

Я нашел следующие комбинации

разрешение "изменить" :

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

разрешение на «чтение» :

<util:PermissionEx Read="yes" GenericRead="yes" User="SOMEUSER" />
1 голос
/ 11 ноября 2012

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

<util:PermissionEx 
    User="Users" Domain="BUILTIN" 
    GenericWrite="yes" GenericExecute="yes" GenericRead="yes" 
    Delete="yes" Synchronize="yes" />
1 голос
/ 20 августа 2009

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

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

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

...