Поделиться через


Средство настройки политики управления доступом для кода (Caspol.exe)

Обновлен: Ноябрь 2007

Средство настройки политики управления доступа для кода позволяет пользователям и администраторам изменять политику безопасности на уровне компьютера, пользователя и предприятия.

caspol [options]

Параметры

Параметр

Описание

-addfulltrust файл_сборки

либо

-af файл_сборки

Добавляет сборку, реализующую настраиваемый объект безопасности (например, настраиваемое разрешение или настраиваемое условие членства) в список полностью доверенных сборок заданного уровня политики. Аргумент файл_сборки указывает задаваемую сборку. Этот файл должен быть подписан строгим именем. Для подписи сборки строгим именем используется Средство строгих имен (Sn.exe).

При добавлении в политику набора разрешений, который содержит настраиваемое разрешение, сборка, реализующая настраиваемое разрешение, должна быть добавлена в список полного доверия этого уровня политики. Сборки, реализующие настраиваемые объекты безопасности (например, настраиваемые группы кодов или условия членства), применяемые в политике безопасности (например, политике компьютера), должны быть добавлены в список полностью доверенных сборок.

cb6t8dtz.alert_caution(ru-ru,VS.90).gifВнимание!
Если сборка, реализующая пользовательский объект безопасности, ссылается на другие сборки, необходимо сначала добавить эти сборки в список полностью доверенных сборок. Пользовательские объекты безопасности, созданные с использованием Visual Basic, Visual C++ или JScript, ссылаются на Microsoft.VisualBasic.dll, Microsoft.VisualC.dll и Microsoft.JScript.dll соответственно. Эти сборки по умолчанию не содержатся в списке полностью доверенных сборок. Нужно добавить соответствующую сборку в список полностью доверенных, прежде чем добавлять пользовательский объект безопасности. Невыполнение этого требования нарушит целостность системы безопасности, в результате чего ни одна из сборок не сможет быть загружена. В этой ситуации опция Caspol.exe -all -reset не исправит систему безопасности. Для ее исправления необходимо вручную редактировать файлы безопасности для удаления объекта безопасности.

-addgroup {метка_родителя | имя_родителя} членство имя_набора_разрешений [флаги]

либо

-ag {метка_родителя | имя_родителя} членство имя_набора_разрешений [флаги]

Добавляет новую группу кодов в иерархию групп кодов. Можно задать метку_родителя или имя_родителя. Аргумент метка_родителя задает метку (например, 1. или 1.1.) группы кодов, являющейся родительской по отношению к добавляемой группе кодов. Аргумент имя_родителя задает имя группы кодов, являющейся родительской по отношению к добавляемой группе кодов. Поскольку аргументы метка_родителя и имя_родителя взаимозаменяемы, необходимо, чтобы средство Caspol.exe могло различать их. Поэтому аргумент имя_родителя не может начинаться с цифры. Кроме того, аргумент имя_родителя может состоять только из знаков A-Z, 0-9 и знаков подчеркивания.

Аргумент членство задает условие членства для новой группы кодов. Дополнительные сведения см. в таблице аргументов членство далее в этом отделе.

Аргумент имя_набора_разрешений задает имя набора разрешений, связанного с новой группой кодов. Кроме того, для группы можно установить один или несколько флагов. Дополнительные сведения см. в таблице аргументов флаги ниже в этом разделе.

-addpset {файл_набора_разрешений | файл_набора_разрешенийимя_набора_разрешений}

либо

-ap {именованный_файл_набора_разрешений | файл_набора_разрешений имя_набора_разрешений}

Добавляет новый именованный набор разрешений в политику. Набор разрешений должен быть создан на языке XML и храниться в XML-файле. Если XML-файл содержит имя набора разрешений, указывается только имя файла (файл_набора_разрешений). Если XML-файл не содержит имя набора разрешений, необходимо задать и имя XML-файла (файл_набора_разрешений), и имя набора разрешений (имя_набора_разрешений).

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

-a[ll]

Означает, что параметры, следующие за этим параметром, применяются к политикам компьютера, пользователя и предприятия. Параметр -all всегда относится к политике текущего пользователя, вошедшего в систему. Чтобы сослаться на политику пользователя, отличного от текущего, задайте параметр -customall.

-chggroup {метка |имя} {членство | имя_набора_разрешений |

флаги}

либо

-cg {метка |имя} {членство | имя_набора_разрешений |

флаги}

Изменяет условие членства в группе, набор разрешений, либо параметры флагов exclusive, levelfinal, name или description. Можно задать аргументы метка или имя. Аргумент метка задает метку группы кодов (например 1. или 1.1.). Аргумент имя задает имя изменяемой группы кодов. Поскольку аргументы метка и имя взаимозаменяемы, необходимо, чтобы инструмент Caspol.exe мог различать их. Поэтому аргумент имя не может начинаться с цифры. Кроме того, аргумент имя может состоять только из знаков A-Z, 0-9 и знаков подчеркивания.

Аргумент имя_набора_разрешений задает имя набора разрешений, сопоставляемого новой группе кодов. Сведения об аргументах членство и флаги см. в таблицах далее в этом разделе.

-chgpset файл_набора_разрешений имя_набора_разрешений

либо

-cp файл_набора_разрешений имя_набора_разрешений

Изменяет именованный набор разрешений. Аргумент файл_набора_разрешений задает новое определение набора разрешений, то есть файл сериализованного набора разрешений в формате XML. Аргумент имя_набора_разрешений задает имя набора разрешений, который нужно изменить.

-customall путь

либо

-ca путь

Означает, что параметры, следующие за этим параметром, применяются к политикам компьютера, предприятия и настраиваемым политикам указанного пользователя. Требуется задать расположение файла конфигурации безопасности пользователя в аргументе путь.

-cu[stomuser] путь

Разрешает администрирование настраиваемой политики пользователя, не принадлежащей пользователю, от имени которого запущена программа Caspol.exe. Требуется задать расположение файла конфигурации безопасности пользователя в аргументе путь.

-enterprise

либо

-en

Означает, что параметры, следующие за этим параметром, применяются к политике уровня предприятия. Пользователи, не являющиеся администраторами предприятия, не имеют права на изменение политики предприятия, хотя и могут ее просматривать. По умолчанию в сценариях, не относящихся к предприятию, эта политика не влияет на политики компьютера и пользователя.

-e[xecution] {on | off}

Включает и отключает механизм проверки разрешений до выполнения кода.

-f[orce]

Отключает проверку инструмента на самоуничтожение и изменяет политику в соответствии с заданными пользователем параметрами. В обычных условиях программа Caspol.exe проверяет, не помешают ли ее работе изменения, внесенные в политику, и если это так, то изменения политики не сохраняются и выводится сообщение об ошибке. Чтобы принудительно внести изменения в политику, даже если они нарушат работу Caspol.exe, укажите параметр –force.

-h[elp]

Отображает синтаксис команд и параметров для Caspol.exe.

-l[ist]

Выводит иерархию групп кодов и наборы разрешений для уровней указанного компьютера, пользователя, предприятия или для всех уровней политик. Caspol.exe сначала отображает метку группы кодов, а затем имя, если оно не пусто.

-listdescription

Отображает список описаний всех групп кодов для указанного уровня политики.

-listfulltrust

либо

-lf

Отображает список полностью доверенных сборок для указанного уровня политики.

-listgroups

либо

-lg

Отображает группы кодов для указанного уровня политики или всех уровней политики. Caspol.exe сначала отображает метку группы кодов, а затем имя, если оно не пусто.

-listpset или -lp

Отображает наборы разрешений для указанного уровня политики или всех уровней политики.

-m[achine]

Указывает, что параметры, следующие за этим параметром, применяются к политике уровня компьютера. Пользователи, не являющиеся администраторами, не имеют права на изменение политики компьютера, хотя могут просматривать ее. Для администраторов параметр -machine установлен по умолчанию.

-polchgprompt {on | off}

либо

-pp {on | off}

Разрешает или запрещает выдачу запроса, появляющегося при запуске программы Caspol.exe с параметрами, которые могут изменить политику.

-quiet

либо

-q

Временно блокирует вывод запроса, отображаемого при выборе параметров, которые могут изменить политику. Это не влияет на вывод запроса при внесении глобальных изменений. Этот параметр следует использовать только для отдельных команд, чтобы предотвратить вывод запроса для всех команд Caspol.exe.

-r[ecover]

Восстанавливает политику из файла архива. При изменении политики старая политика Caspol.exe сохраняется в файле архива.

-remfulltrust файл_сборки

либо

-rfфайл_сборки

Удаляет сборку из списка полностью доверенных сборок уровня политики. Эту операцию следует выполнить, если политика больше не использует набор разрешений, содержащий настраиваемое разрешение. Тем не менее, сборки, реализующие настраиваемые разрешения, следует удалять из списка полностью доверенных сборок, только если они не реализуют другие используемые настраиваемые разрешения. При удалении сборки из списка следует удалить все сборки, которые зависят от нее.

-remgroup {метка |имя}

либо

-rg {метка | имя}

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

-rempset имя_набора_разрешений

либо

-rp имя_набора_разрешений

Удаляет указанный набор разрешений из политики. Удаляемый набор разрешений задается аргументом имя_набора_разрешений. Набор разрешений удаляется только в том случае, если он не связан ни с какой группой кодов. Наборы разрешений, используемые по умолчанию (встроенные), не могут быть удалены. Дополнительные сведения см. в разделе Именованные наборы разрешений.

-reset

либо

-rs

Восстанавливает политику в состояние по умолчанию и сохраняет ее на диске. Этот параметр полезен, если измененную политику проще не исправлять, а создать заново из состояния по умолчанию. Возврат к политике по умолчанию также целесообразен при создании файлов конфигурации безопасности на основе файлов, используемых по умолчанию. Дополнительные сведения см. в разделе Ручная настройка файлов конфигурации безопасности.

-resetlockdown

либо

-rsld

Возвращает политику к более строгой версии состояния по умолчанию и сохраняет ее на диске; создает резервную копию предыдущей политики компьютера и сохраняет ее в файле с именем security.config.bac. Заблокированная политика напоминает политику по умолчанию за тем исключением, что эта политика не предоставляет разрешений коду из зон Local Intranet, Trusted Sites и Internet, а соответствующие группы кодов не имеют дочерних групп кодов.

-resolvegroup файл_сборки

либо

-rsgфайл_сборки

Отображает группы кодов, к которым принадлежит указанная сборка (файл_сборки). По умолчанию отображаются политики уровня компьютера, пользователя и предприятия, к которым принадлежит сборка. Чтобы отобразить только один уровень политики, задайте параметр -machine, -user или -enterprise.

-resolveperm файл_сборки

либо

-rsp файл_сборки

Отображает все разрешения, которые будут предоставлены сборке указанным уровнем политики безопасности или уровнем политики безопасности по умолчанию, если будет разрешено выполнение сборки. Сборка задается аргументом файл_сборки. Если указан параметр -all, разрешения вычисляются на основе политики пользователя, компьютера и предприятия, в противном случае применяются правила поведения по умолчанию.

-s[ecurity] {on | off}

Включает и выключает управление доступом для кода. Параметр -s off не отключает безопасность на основе ролей.

Внимание!   При выключенной системе управления доступом для кода все условия доступа для кода удовлетворяются. При выключении системы управления доступом для кода система становится уязвимой для атак таких вредоносных программ, как вирусы и "черви". Отключение безопасности повышает производительность, однако это допустимо только в случае, если общая безопасность системы адекватно обеспечивается другими механизмами. К другим мерам обеспечения безопасности относятся отключение от общедоступных сетей, физическая защита компьютера и т.п.

-u[ser]

Указывает, что параметры, следующие за этим параметром, применяются к политике уровня пользователя для пользователя, от имени которого запущена программа Caspol.exe. Для пользователей, не являющихся администраторами, параметр -user установлен по умолчанию.

-?

Отображает синтаксис команд и параметров для Caspol.exe.

Аргумент членство, определяющий условия членства в группе кодов, может применяться с параметрами -addgroup и -chggroup. Каждый аргумент членство реализуется как класс .NET Framework. Чтобы задать аргумент членство, используйте один из приведенных ниже аргументов.

Аргумент

Описание

-all

Весь код. Дополнительные сведения об этом условии членства см. в классе AllMembershipCondition.

-appdir

Задает каталог приложения. Если в качестве условия членства задано –appdir, URL-свидетельство кода сравнивается со свидетельством каталога приложения этого кода. Если значения свидетельств совпадают, условие членства выполнено. Дополнительные сведения об этом условии членства см. в классе ApplicationDirectoryMembershipCondition.

-custom xml-file

Добавляет настраиваемое условие членства. Обязательный аргумент xml-файл задает XML-файл, содержащий XML-сериализацию настраиваемого условия членства.

-hash алгоритм_хэширования {-hex значение_хэша | -file файл_сборки }

Задает код с указанным хэшем сборки. Чтобы использовать хэш в качестве условия членства в группе кодов, укажите значение хэша или файл сборки. Дополнительные сведения об этом условии членства см. в классе HashMembershipCondition.

-pub { -certимя_файла_сертификата |

-fileимя_подписанного_файла | -hex шестнадцатеричная_строка }

Задает код указанного издателя программного обеспечения, определенного файлом сертификата, подписью файла или шестнадцатеричным представлением сертификата X509. Дополнительные сведения об этом условии членства см. в классе PublisherMembershipCondition.

-site веб-узел

Задает код с указанным исходным веб-узлом. Пример.

-site www.proseware.com

Дополнительные сведения об этом условии членства см. в классе SiteMembershipCondition.

-strong -file имя_файла {имя | -noname} {версия | -noversion}

Задает код с указанным строгим именем (определяется по имени файла), имя сборки в виде строки и версию сборки в формате главная.вспомогательная.построение.редакция. Пример.

-strong -file myAssembly.exe myAssembly 1.2.3.4

Дополнительные сведения об этом условии членства см. в классе StrongNameMembershipCondition.

-url URL-адрес

Указывает код, полученный с заданного URL-адреса. URL-адрес должен включать протокол, например http:// или ftp://. При необходимости задать несколько сборок с определенного URL-адреса используется подстановочный знак (*).

cb6t8dtz.alert_note(ru-ru,VS.90).gifПримечание.
Ввиду возможности указывать URL-адрес несколькими способами применение URL-адреса в качестве условия членства нельзя считать безопасным способом идентификации кода. Там, где это возможно, используйте условие членства строгого имени, условие членства издателя или условие членства хэша.

Дополнительные сведения об этом условии членства см. в классе UrlMembershipCondition.

-zone имя_зоны

Указывает код с заданной исходной зоной. Аргумент имя_зоны может принимать одно из следующих значений: MyComputer, Intranet, Trusted, Internet или Untrusted. Дополнительные сведения об этом условии членства см. в классе ZoneMembershipCondition.

Аргумент флаги, который может использоваться с параметрами –addgroup и –chggroup, определяется с использованием одного из следующих аргументов.

Аргумент

Описание

-description "описание"

В сочетании с параметром –addgroup задает описание добавляемой группы кодов. В сочетании с параметром –chggroup задает описание редактируемой группы кодов. Аргумент описание должен быть заключен в двойные кавычки.

-exclusive {on|off}

С ключевым словом on указывает, что при выполнении для некоторого кода условий членства обрабатываются только те наборы разрешений, которые связаны с редактируемой или добавляемой группой кодов. С ключевым словом off указывает, что должны обрабатываться все наборы разрешений всех соответствующих групп кодов на данном уровне политики.

-levelfinal {on|off}

С ключевым словом on исключает из рассмотрения все уровни политики ниже того, на котором расположена добавляемая или редактируемая группа кодов. Этот параметр обычно используется на уровне политики компьютера. Например, если этот флаг указан для группы кодов на уровне политики компьютера, политика уровня пользователя не будет вычислена и применена к коду, удовлетворяющему условию членства в этой группе.

-name "имя"

В сочетании с параметром –addgroup задает имя сценария для добавляемой группы кодов. В сочетании с параметром –chggroup задает имя сценария для редактируемой группы кодов. Аргумент имя должен быть заключен в двойные кавычки. Аргумент имя не может начинаться с цифры и должно состоять только из знаков A-Z, 0-9 и знаков подчеркивания. Обращаться к группам кода можно по этому аргументу имя вместо цифровой метки. Кроме того, аргумент name очень удобен в работе со сценариями.

Заметки

Политика безопасности задается на трех уровнях: компьютера, пользователя и предприятия. Набор разрешений, получаемый сборкой, определяется пересечением наборов разрешений, предоставляемых этими тремя уровнями политики. Каждый уровень политики представлен иерархической структурой групп кодов. У каждой группы кодов имеется условие членства, по которому определяется принадлежность кода к группе. С каждой группой кодов также связан именованный набор разрешений. Этот набор разрешений задает разрешения, предоставляемые исполняющей средой коду, который удовлетворяет условию членства. Иерархия групп кодов и связанный именованный набор разрешений определяют и поддерживают уровни политики безопасности. Для задания уровня политики безопасности используются параметры –user, -customuser, –machine и -enterprise .

Дополнительные сведения о политике безопасности и о предоставлении коду разрешений исполняющей средой см. в разделе Управление политикой безопасности.

Ссылки на группы кодов и наборы разрешений

Параметр -list, отображающий список групп кодов с цифровыми метками (1, 1.1, 1.1.1 и т. д.), облегчает создание ссылок на группы кодов в иерархии. Другие функции командной строки, работающие с группами кодов, также используют цифровые метки для ссылки на группы кодов.

Ссылки на именованные наборы разрешений осуществляются по имени. Параметр –list отображает список групп кодов и список именованных наборов разрешений, доступных в политике. Список и описание встроенных наборов разрешений, доступных во время выполнения, см. в разделе Именованные наборы разрешений.

Поведение программы Caspol.exe

Для всех параметров, за исключением -s[ecurity] {on | off} используется версия .NET Framework, с которой была установлена программа Caspol.exe. Изменения, внесенные Caspol.exe, установленной с версией X среды выполнения, будут влиять только на эту версию. В другие параллельные установки среды выполнения, при их наличии, изменения вноситься не будут. Если средство Caspol.exe запущено из командной строки в каталоге, отличном от каталога среды выполнения требуемой версии, инструмент выполняется из каталога первой версии среды выполнения в составе пути (обычно это каталог последней установленной версии).

Параметр -s[ecurity] {on | off} оказывает влияние на уровне компьютера. При отключении управления доступом для кода отключается проверка безопасности для всего управляемого кода и всех пользователей компьютера. Проверки отключаются для всех установленных на компьютере параллельных версий .NET Framework, если они имеются. Хотя параметр –list уведомляет, что система безопасности отключена, никаких других признаков, по которым другие пользователи могли бы узнать об этом, не существует.

При запуске программы Caspol.exe пользователем без прав администратора все изменения вносятся в политику уровня пользователя, если не задан параметр –machine. При выполнении программы Caspol.exe администратором все изменения вносятся в политику уровня компьютера, если не задан параметр –user.

Для правильной работы средству Caspol.exe требуется набор разрешений, аналогичный Everything. Защитный механизм программы позволяет избежать внесения в политику изменений, препятствующих работе программы. При попытке внесения таких изменений появится уведомление о том, что изменения не были внесены, так как они нарушат работу программы. Чтобы отключить этот защитный механизм для определенной команды, задайте параметр –force.

Ручная настройка файлов конфигурации безопасности

Трем уровням политики безопасности (уровни пользователя, компьютера, предприятия), поддерживаемым средством Caspol.exe, соответствуют три файла конфигурации безопасности. Эти файлы создаются на диске только в при изменении политики уровня компьютера, пользователя или предприятия с использованием средства Caspol.exe. Параметр –reset можно использовать в Caspol.exe для сохранения установленной по умолчанию политики безопасности на диск, если это необходимо.

Ручное редактирование файлов конфигурации безопасности в большинстве случаев не рекомендуется. Однако в некоторых случаях ручное редактирование обязательно, например в том случае, если администратор желает изменить конфигурацию безопасности конкретного пользователя.

Примеры

-addfulltrust

Допустим, что в политику компьютера был добавлен набор разрешений с пользовательским разрешением. Пользовательское разрешение реализовано в программе MyPerm.exe. Программа MyPerm.exe ссылается на классы программы MyOther.exe. Обе сборки должны быть добавлены в список полностью доверенных сборок. Для добавления сборки MyPerm.exe в список полностью доверенных сборок политики компьютера служит следующая ниже команда.

caspol -machine -addfulltrust MyPerm.exe

Для добавления сборки MyOther.exe в список полностью доверенных сборок политики компьютера служит следующая команда.

caspol -machine -addfulltrust MyOther.exe

-addgroup

Следующая команда добавляет дочернюю группу кодов в корень иерархии групп кодов политики компьютера. Новая группа кодов является членом зоны Internet и сопоставлена набору разрешений Execution.

caspol -machine -addgroup 1.  -zone Internet Execution

Приведенная ниже команда добавляет дочернюю группу кодов, которая предоставляет локальные разрешения на действия share \\netserver\netshare в интрасети.

caspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet

-addpset

Приведенная ниже команда добавляет разрешение Mypset в политику пользователя.

caspol -user -addpset Mypset.xml Mypset

-chggroup

Приведенная ниже команда заменяет набор разрешений группы кода политики пользователя с меткой 1.2. на набор разрешений Execution.

caspol -user -chggroup 1.2. Execution

Приведенная ниже команда изменяет условие членства для политики по умолчанию группы кода с меткой 1.2.1. и изменяет состояние флага exclusive. В качестве условий членства задано происхождение кода из зоны Internet и наличие включенного флага exclusive.

caspol -chggroup 1.2.1. -zone Internet -exclusive on

-chgpset

Следующая команда заменяет набор разрешений с именем Mypset на набор разрешений, содержащийся в файле newpset.xml. Обратите внимание, что в текущем выпуске не поддерживается замена наборов разрешений, используемых иерархией групп кода.

caspol -chgpset Mypset newpset.xml

-force

Приведенная ниже команда связывает корневую группу кода (метка 1) политики пользователя с набором разрешений Nothing. Выполнение этой команды препятствует выполнению средства Caspol.exe.

caspol -force -user -chggroup 1 Nothing

-recover

Приведенная ниже команда восстанавливает последнюю сохраненную политику уровня компьютера.

caspol -machine -recover

-remgroup

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

caspol -remgroup 1.1.

-rempset

Приведенная ниже команда удаляет набор разрешений Execution из политики пользователя.

caspol -user -rempset Execution

Приведенная ниже команда удаляет набор разрешений Mypset из политики уровня пользователя.

caspol -rempset MyPset

-resolvegroup

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

caspol -machine -resolvegroup myassembly

Приведенная ниже команда отображает все группы кода политики компьютера, предприятия и указанной настраиваемой политики пользователя, в состав которых входит сборка myassembly.

caspol -customall "c:\config_test\security.config" -resolvegroup myassembly

-resolveperm

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

caspol -all resolveperm testassembly

См. также

Ссылки

Инструменты .NET Framework

Командная строка пакета SDK

Другие ресурсы

Настройка политики безопасности с помощью средства для настройки политики управления доступом для кода (Caspol.exe)

Управление политикой безопасности