Sun Java System Web Proxy Server 4.0.8 관리 설명서

권한 부여문

각 ACL 항목에는 하나 이상의 권한 부여문이 있습니다. 권한 부여문은 서버 자원에 대한 액세스를 허용 또는 거부할 사용자를 지정합니다.

권한 부여문 작성

권한 부여문을 작성하는 경우 다음 구문을 사용합니다.

allow|deny [absolute] (right[,right...]) attribute expression;

각 줄은 allow 또는 deny로 시작합니다. 규칙 계층 구조로 인해 첫 번째 규칙에서는 모든 사용자의 액세스를 거부한 다음 이후의 규칙에서는 사용자, 그룹 또는 컴퓨터의 액세스를 구체적으로 허용합니다. 예를 들어 /my_files 라는 디렉토리에 대해 모든 사용자의 액세스를 허용한 후, /my_files/personal 이라는 하위 디렉토리에 대해 일부 사용자에게만 액세스를 허용하는 경우 하위 디렉토리에 대한 액세스 제어가 제대로 적용되지 않습니다. 이는 /my_files 디렉토리에 액세스가 허용된 모든 사용자가 /my_files/personal 디렉토리에 액세스할 수 있기 때문입니다. 이러한 경우를 예방하려면 모든 사용자의 액세스를 거부한 후 일부 사용자에게 액세스를 허용하는 하위 디렉토리용 규칙을 만듭니다.

그러나 모든 사용자의 액세스를 거부하도록 기본 ACL을 설정하면 다른 ACL 규칙에는 "deny all" 규칙이 필요하지 않은 경우도 있습니다.

다음 줄은 모든 사용자의 액세스를 거부합니다.

deny (all) user = "anyone";

권한 부여문의 계층

ACL 계층은 자원에 따라 다릅니다. 서버는 특정 자원에 대한 요청을 받으면 해당 자원에 적용되는 ACL 목록을 만듭니다. 서버는 우선 obj.conf 파일의 check-acl문에 있는 명명된 ACL 목록을 추가합니다. 그런 다음 일치하는 경로와 자원 ACL을 추가합니다. 이 목록은 동일한 순서로 처리됩니다. "absolute" ACL문이 있지 않는 한 모든 문은 순서대로 평가됩니다. "absolute allow" 또는 "absolute deny"문이 "true"인 경우 서버는 처리를 중단하고 모든 결과를 승인합니다.

일치하는 ACL이 두 개 이상인 경우 서버는 일치하는 마지막 문을 사용합니다. 그러나 absolute문을 사용하는 경우 서버는 다른 일치에 대한 조회를 중단하고 absolute문이 포함된 ACL을 사용합니다. 동일한 자원에 대해 absolute문이 둘인 경우 서버는 파일의 첫 번째 문을 사용하고 일치되는 다른 자원에 대한 조회를 중단합니다.


version 3.0;acl "default";authenticate (user,group)
	{ prompt="Sun Java System Web Proxy Server";};
	allow (read,execute,list,info) user = "anyone";
	allow (write,delete) user = "all";acl "http://*.*";
	deny (all) user = "anyone";allow (all) user = "joe";

            

속성 표현식

속성 표현식은 사용자 이름, 그룹 이름, 호스트 이름 또는 IP 주소를 기준으로 허용 또는 거부할 사용자를 정의합니다. 다음 줄에서는 다른 사용자 또는 컴퓨터에 액세스 권한을 부여하는 방법에 대해 예를 들어 설명합니다.

또한 timeofday 속성을 사용하여 하루 중 시간(서버의 로컬 시간)에 따라 서버로의 액세스를 제한할 수 있습니다. 예를 들어 timeofday 속성을 사용하여 특정 사용자가 정해진 시간에만 액세스하도록 제한할 수 있습니다.

예를 들어 오전 4:00의 경우 0400, 오후 10:30의 경우 2230과 같이 시간을 지정하려면 24시간 형식을 사용합니다. 다음 예에서는 오전 8:00에서 오후 4:59 사이에 guests라고 하는 사용자 그룹에 대한 액세스를 제한합니다.

allow (read) (group="guests") and (timeofday<0800 or timeofday=1700);

또한 주중 요일에 따라 액세스를 제한할 수 있습니다. 다음과 같이 Sun, Mon, Tue, Wed, Thu, Fri, Sat 등의 세자리 약자를 사용하여 요일을 지정합니다.

다음 문은 premium 그룹의 사용자에게 항상 액세스를 허용합니다. discount 그룹의 사용자는 주말의 모든 시간과 주 중 오전 8시에서 오후 4:59를 제외한 모든 시간에 액세스할 수 있습니다.

allow (read) (group="discount" and dayofweek="Sat,Sun") or (group="discount" and (dayofweek="mon,tue,wed,thu,fri" and(timeofday<0800 or timeofday=1700)))or (group="premium");

표현식용 연산자

다양한 연산자를 속성 표현식에 사용할 수 있습니다. 괄호는 연산자의 순서를 변경할 때 사용합니다. 다음 연산자를 user, group, dnsip와 함께 사용할 수 있습니다.

다음 연산자를 timeofdaydayofweek와 함께 사용할 수 있습니다.