Sun WebServer 1.0 的存取權控制到 Sun WebServer 2.0 已經有很大的改變。要將舊的 Sun WebServer 存取權控制結構轉移到新版之前,請先閱讀 Wun WebServer 2.0 的存取權控制文件。以下列出最明顯的改變之處:
領域這種觀念已經擴展到相當大的範圍,並且增加了一個新的配置檔案 realm.conf。
存取權控制委託這項功能已經刪除。
"/sws-administration" 這個 URL 的存取權控制在 Sun WebServer 內都有作用,若在伺服器層級配置檔案 access.conf 中指定此 URL,則可用於決定伺服器的管理者,若在站台層級配置檔案 access.conf 中指定此 URL,則可決定站台的管理者。
/etc/http/access.conf 這個伺服器層級的配置檔案(位於 /etc/http/access.conf)對於系統上所有實例均有作用。此檔案含有一個 "/sws-administration" URL,定義誰有權管理所有伺服器軟體。
每個網站都有各自的站台層級檔案 access.conf,以指定各站台的管理者。
現在領域可以從更多來源取得使用者的資料,亦可利用標準的 HTPASSWD
資料庫或 NIS+ 資料庫對使用者進行辨證。
要將 Sun WebServer 1.0 access.acl 檔案轉移成 2.0,必須建立或選擇一個辨證領域,將對應的 URL 存取權控制語法改成符合新的 2.0 語法,並將 access.acl 檔案和委託檔案內的存取權控制收集在每個網站的 access.conf 檔案內。
在 Sun WebServer 1.0 中,realm
設定指引除了當作瀏覽程式的識別碼之外(顯示在辨證對話框內),並無其他多大用處。但在 Sun WebServer 2.0 內,領域設定了早先存在的一組使用者與群組,以辯證是否有權存取某個 URL。領域資料存放在 realms.conf 檔案內。 HTPASSWD
領域有各自的目錄(定義於 realm.conf 中),其中含有進行辨證時會用到的 users 與 groups 檔案。因此 Sun WebServer 1.0 ACL 中的 password_file
以及 group_file
設定指引便沒有作用了。所有 1.0 的領域在
2.0 中都是 HTPASSWD
領域,因為這些使用者建立的資料庫是 1.0 中唯一的資料來源。
假設主機 widgets 的 Sun WebServer 1.0 /etc/http/access.acl 存取權控制設定如下:
url /reports { realm Managers authentication_type basic password_file /usr/auth/Managers/Maners_users group_file /usr/auth/Managers/Managers_groups + group report_managers - user Joe } |
建立一個領域以存放密碼和群組檔案,方法如下:
# htrealm add -i server1 -h widgets -r Managers -s HTPASSWD |
以上指令會在站台的 realms.conf 中加入以下設定:
realm Managers { realm_source HTPASSWD } |
以上指令也會在站台建立以下目錄:
/var/http/server1/websites/widgets/conf/realms/Managers/ |
將 users 與 groups 檔案複製到 Managers 目錄內:
# cp /usr/auth/Managers/Managers_users \ /var/http/server1/websites/widgets/conf/realms/Managers/users # cp /usr/auth/Managers/Managers_groups \ /var/http/server1/websites/widgets/conf/realms/Managers/groups |
刪除 Sun WebServer 1.0 ACL 中的檔案設定指引,然後將新的 ACL 放入 Sun WebServer 2.0 ACL 檔案內: /var/http/server1/websites/widgets/conf/access.conf:
url /reports { realm Managers authentication_type basic + group report_managers - user Joe } |
Sun WebServer 2.0 已經不再採用委託的觀念。以前放在委託檔案內的所有存取權控制,都必須移到各站台的 access.conf 檔案內集中放置。
假設以下的 Sun WebServer 1.0 ACL 與委託檔案:
/etc/http/access.acl 中的 ACL:
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_acl 檔案:
realm admin password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
這些都必須收合到同一個 ACL 內:
請先建立領域 admin
,方法請參閱前一個範例。
url /statistics { realm admin + group stat_admins } |
假設以下的 Sun WebServer 1.0 ACL 與委託檔案:
access.acl 內的 ACL:
url /statistics { delegate /var/http/acls/.admin_acl } |
/var/http/acls/.admin_acl 檔案 (此檔案擁有權屬於 joe:adm
)
realm admins password_file /usr/auth/admin_user group_file /usr/auth/admin_group + group stat_admins |
這些設定必須收合到一個 ACL::
url /statistics { realm admins administrators { user joe group adm } + group stat_admins } |