Sun WebServer 安裝手冊 Solaris Easy Access Server 版

轉移 Sun WebServer 1.0 的 access.acl 檔案

Sun WebServer 1.0 的存取權控制到 Sun WebServer 2.0 已經有很大的改變。要將舊的 Sun WebServer 存取權控制結構轉移到新版之前,請先閱讀 Wun WebServer 2.0 的存取權控制文件。以下列出最明顯的改變之處:

要將 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 中唯一的資料來源。

轉移到 Sun WebServer 2.0 領域
  1. 假設主機 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
    }
  2. 建立一個領域以存放密碼和群組檔案,方法如下:


    # 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/
  3. 將 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
    
  4. 刪除 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 檔案內集中放置。

轉換委託 ACL
  1. 假設以下的 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
      }
轉換委託 ACL(進階方法)
  1. 假設以下的 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
  2. 這些設定必須收合到一個 ACL::


    url /statistics {
    	realm					 admins
    
    	administrators {
    		user					 joe
    		group				 adm
    	}
    
    	+ group				stat_admins
    }