用戶授權和訪問控制
你也許在訪問某些網站時會遇到過這樣的情況,當你點擊某個連接時,你的瀏覽器會彈出一個身份驗證的對話框,要求輸入賬號及密碼,如果沒有,就無法繼續瀏覽了。有人會以為這是用cgi做出來的,其實不然,這是www服務器的用戶授權和訪問控制機制在發揮作用。
你是否還記得在設置apache服務環境的過程中,有 1、首先對httpd.conf文件進行設置如下: 2、創建.htaccess文件內容 要控制某目錄的訪問權限必須建立一訪問控制文件,文件名前面指定的“.htaccess”,其內容格式如下: 3、建立用戶密碼文件 如果你是第一次創建用戶密碼,命令格式如下: htpasswd -c 密碼文件名 用戶名稱 在上面的例子中,我們將用戶密碼文件放到了/etc/secure.user文件中,所以這里應按照如下進行操作: htpasswd -c /etc/secure.user sword 程序會提示你輸入兩次用戶的口令,然后用戶密碼文件就已經創建sword這個用戶也添加完畢了。 如果要向密碼文件中添加新的用戶,按照如下命令格式進行操作: htpasswd 密碼文件 用戶名稱 這樣,重新啟動httpd后,進行該web目錄時就會有一個對話框彈出,要求輸入用戶名及用戶口令了。 4、如何減少訪問控制對apache性能的影響 頻繁的使用訪問控制會對apache的性能產生較大的影響,那么,如何才能減少這種影響呢?最簡單也是最有效的方法之一就是減少.htaccess文件的數目,這樣可以避免apache對每一個請求都要按照.htaccess文件的內容進行授權檢查。它不僅在當前的目錄中查找.htaccess文件,它還會在當前目錄的父目錄中查找。 / /usr /usr/local /usr/local/etc /usr/local/etc/httpd /usr/local/etc/httpd/htdocs /usr/local/etc/httpd/htdocs/docs 通常在根目錄下沒有htaccess文件,但apache仍然會進行例行檢查以確定該文件確實不存在。這是影響很影響服務器工作效率的事情。下面的方法可以消除這個討厭的過程:將allowoverride選設置為none,這樣apache就會檢查.htaccess文件了。將/根目錄的 allowoverride選項設為none,只將需要進行訪問控制的目錄下的allowoverride選項設置為all,如下面的例子中將/根目錄的 allowoverride 選項關閉了,只打開了/usr/local/etc/httpd/htdocs目錄下的allowoerride選項,這樣,系統就只在 /usr/local/etc/httpd/htdocs中檢查.htaccess文件,達到的提高服務效率的目的。 如果除了根目錄以外,還有其它存放www文件的目錄,你也可以采取同樣的方法進行設置。比如:如果你使用userdir來允許用戶訪問自己的目錄,allowoverride的設置如下: 5、防止用戶訪問指定的文件 系統中有一些文件是不適宜提供給www用戶的,如:.htaccess、htpasswd、*.pl等,可以用 用戶訪問控制三個.htaccess文件、.htpasswd和.htgroup(用于用戶授權) ,為了安全起見,應該防止用戶瀏覽其中內容,可以在httpd.conf中加入以下內容阻止用戶對其進行訪問: 這樣這三個文件就不會被用戶訪問了。 6、限制某些用戶訪問特定文件 如果你要授于相應權限的機器沒有公開的域名,請在你的/etc/hosts文件中,將其ip地址映射到某個指定的名稱,然后在location中對其進行設置,否則該選項是不起作用的。 7、只接受來自特定鏈接的訪問 例如,只讓所有來自 http://www.sina.com.cn/* 的鏈接的用戶進入此目錄,由其它鏈接來的訪客都不得進入; " * "表示此網站底下所有的鏈接。其中的 http://www.sina.com.cn/* 也可以是:http://202.106.184.200/* 或是指定文件 http://www.sina.com.cn/news.html .htaccess文件的內容如下:
新聞熱點
疑難解答