Sun Java System Web Proxy Server 4.0.8 管理指南

授權敘述

每個 ACL 項目均可以包含一個或多個授權敘述。授權敘述指定允許\或拒絕哪些使用者存取伺服器資源。

寫入授權敘述

寫入授權敘述時,請使用以下語法:

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

每行開頭必須為 allowdeny。由於規則的階層關係,最好在第一條規則中拒絕所有使用者進行存取,然後在後續規則中明確允許使用者、群組或電腦進行存取。例如,如果您允許所有人存取稱為 /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 存在,則伺服器會使用匹配的最後一個描述。然而,如果您使用絕對描述,則伺服器會停止尋找其他匹配的 ACL,並使用包含絕對描述的 ACL。如果同一個資源具有兩個絕對敘述,則伺服器將會使用檔案中的第一個敘述,並停止尋找其他相符的資源。


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 屬性,限定特定使用者只能在特定時間內存取。

請以 24 小時制指定時間,例如以 0400 指定上午 4:00 或 2230 指定下午 10:30。以下範例限定使用者群組 guests 只能在上午 8:00 到下午 4:59 之間進行存取。

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

也可以依星期幾來限定存取。請使用以下三個字母的縮寫來指定星期幾:Sun、Mon、Tue、Wed、Thu、Fri 和 Sat。

以下敘述允許 premium 群組中的使用者在任一天的任何時間進行存取。discount 群組中的使用者可於週末全天進行存取,以及非週休時間上午 8:00 到下午 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");

表示式的運算子

屬性表示式可使用多種運算子。圓括號表示運算子的優先順序。以下運算子可與 usergroupdnsip 一起使用:

以下運算子可與 timeofdaydayofweek 一起使用: