변수를 사용할 때 다음과 같은 지침을 따라야 합니다.
- 다른 변수나 정책이 사용하는 변수는 삭제할 수 없습니다.
- 변수는 여러 값을 가질 수 있습니다. 변수 값을 추가 또는 제거할 수 있습니다.
- 변수는 중첩될 수 있습니다. 예를 들어, 다음 규칙은 기본 제공되는 <!AC_ROOT_PATH> 변수를 포함하는 ac_data란 이름의 변수를 정의합니다.
editres ACVAR ac_data value("<!AC_ROOT_PATH>\data")
기본 설치된 CA ControlMinder이 있는 Windows 끝점이 이 규칙을 준수하면 다음 규칙이 만들어집니다.
editres ACVAR ac_data value("C:\Program Files\CA\AccessControl\data")
- 각 변수는 하나의 유형만 가질 수 있으므로, 예를 들어 변수를 정적 변수인 동시에 레지스트리 값 변수로 정의할 수 없습니다.
- 정의되지 않은 변수를 포함하는 정책을 배포할 수 없습니다. 정의되지 않은 변수를 포함하는 정책을 배포하면 CA ControlMinder이 이 정책의 배포 상태를 "배포 보류"로 변경합니다. 정책을 배포하려면 우선 정의되지 않은 변수를 정의한 다음 정책을 다시 배포해야 합니다.
참고: 정책에서 정의되지 않은 변수를 찾으려면 정책의 DEPLOYMENT 개체를 검토하십시오. CA ControlMinder은 정책 검사의 활성화 여부에 관계없이 정의되지 않은 변수를 검사합니다.
- CA ControlMinder은 CA ControlMinder 변수와 Windows 시스템 변수를 결합하는 규칙을 해석할 수 없습니다. 예를 들어, CA ControlMinder은 이름이 var1인 변수를 정의하는 다음 규칙을 해석할 수 없습니다.
editres ACVAR var1 value("%SYSTEMROOT%\temp")
%SYSTEMROOT%를 CA ControlMinder 변수로 정의하고 %SYSTEMROOT%\temp를 보호하는 정책을 만들려면 다음 규칙을 사용하십시오.
editres ACVAR var1 value("SYSTEMROOT") type(osvar)
editres ACVAR var2 value("<!var1>\temp")
- CA ControlMinder은 서로 종속된 변수를 확인할 수 없습니다. 예를 들어, CA ControlMinder은 다음 예에서 변수 var1과 var2를 해석할 수 없습니다.
editres ACVAR var1 value("<!var2>")
editres ACVAR var2 value("<!var1>")
- 슬래시를 사용하여 변수에서 디렉터리를 정의할 때 CA ControlMinder은 Windows와 UNIX 끝점에 대해 슬래시를 올바른 방향으로 해석합니다.
- selang 규칙을 사용하여 변수를 정의하는 경우 정책을 사용하여 규칙을 끝점에 배포해야 합니다. selang 규칙을 사용하여 끝점에 있는 CA ControlMinder 데이터베이스를 직접 업데이트하면 CA ControlMinder은 이 규칙을 컴파일할 수 없습니다. 예를 들어, 끝점에서 jboss_home이란 이름의 변수를 정의하고 다음 selang 규칙으로 데이터베이스를 직접 업데이트했다고 가정합니다.
editres FILE <!jboss_home> audit(all)
CA ControlMinder은 이 규칙을 컴파일할 수 없지만 대신 데이터베이스에 <!jboss_home>이란 이름의 FILE 개체를 만듭니다.