2008. 10. 3. 17:41

[번역중] 4.2.1. 속성선언, 4.2.2. 타입선언


 

 

 4.2 TE Statements

 

4.2.1 속성 선언

 

  •  타입속성은 유사한 자원을 가지는 타입들의 구별하는데 쓰이는 이름이다. 타입들은 서로 다른 속성의 이름을 가지고 속성들은 타입의 어떤 번호와 결합할 수 있다. 속성들은 선언된 타입들과 결합 되어지고  다음 부분으로 설명된다. 선언된 타입의 속성은 쓰이기 전에 반드시 명백하게 선언되어야 한다.
  • 속성 선언을 위한 구문은 다음과 같다.

 

  attrib_decl -> ATTRIBUTE identifier ';'

 

 예)

 attribute domain;

 attribute privuser;

 attribute privrole;

 

  • 속성이름은 그 속성과 결합되는 타입들의 설정을 표현하는 정책 구성 곳곳에 쓰인다. 속성의 이름은 타입으로써 같은 이름의 공간 내부에 존재한다.
  • 그러나 속성이름은 보안적인 문맥의 타입필드에서는 사용할 수 없다. selinux에서 속성은 명백한 의미를 가지지 않는다. 모든 속성들의 의미는 구성 내부에서 그들이 사용됨을 통하여 완전히 정의 되어진다.

 

4.2.2  타입 선언

 

  •  TE 구성 언어는 정의된 모든 타입을 필요로 한다. ... ... 선언된 서로의 타입은 타입을 위한 첫번째 이름 , 타입을 위한 별명의 선택적 설정, 타입을 위한

      속성의 선택적 설정을 명세한다. 타입선언을 위한 문맥은 다음과 같다.

 

type_decl -> TYPE identifier opt_alias_def opt_attr_list ’;’
opt_alias_def -> ALIAS aliases | empty
aliases -> identifier | ’{’ identifier_list ’}’
identifier_list -> identifier | identifier_list identifier
opt_attr_list -> ’,’ attr_list | empty
attr_list -> identifier | attr_list ’,’ identifier

 

본래 이름과 어떤 별명은 TE 구성내부에 호환성 있게 쓰인다. 실행동안 예들들어 보안서버는 항상 SID(?)를 위해 안정성 문맥을 반환할 때 본래의 이름을 사용하여 식별한다. 그리고 어플리케이션에서는 본래이름과 별명을 같이 사용 할 수 있다. 별명은 타입의 빠른어구형이나 동의어를 위해 제공되지만 보안의 관점에서 보면 중요하지 않다. ...

 

또한  typealias 와 typeattribute 상태를 사용하여 분리된 추가적인 별명또는 속성을 선언할 수 있다. 이 상태들은 이미 타입으로 선언된 별명과 속성을 추가해 준다.

 

typealias_decl -> TYPEALIAS identifier ALIAS aliases ’;’
typeattribute_decl -> TYPEATTRIBUTE identifier attr_list ’;’

 

다음은 Secure shell daemon과 관련된 정책 구성의 예로 부터 몇몇 타입의 선언을 보여준다.

 

type sshd_t, domain, privuser, privrole, privlog, privowner;
type sshd_exec_t, file_type, exec_type, sysadmfile;
type sshd_tmp_t, file_type, sysadmfile, tmpfile;
type sshd_var_run_t, file_type, sysadmfile, pidfile;

 

sshd_t 타입은 데몬 프로세스의 도메인이다. sshd_exec_t 타입은 실행가능한 sshd의 타입이다.

sshd_tem_t 와 sshd_var_run_t 타입은 임시파일과 PID파일을 위한 타입들이며 이들은 각각 데몬 프로세스에 의해 생성된다. 이 타입들은 서로 TE구성내부의

규칙에 의해 작성된 속성으로 결합되어 있다.