目的:為Apache,php配置受限制的使用者權限
環境配置情況:
apache安裝目錄:d:\www-s\apache
php目錄:d:\www-s\php5
mysql目錄:d:\www-s\mysql
網站根目錄:d:\www\htdocs
專門為運行Apache運行所使用的使用者:apache-u(可不隸屬於任何使用者組)
PS:這裡只說Windows下Apache應用環境相關的目錄使用權限設定,至於其他基本的伺服器目錄使用權限設定就不提啦!
Windows下Apache應用環境塔建目錄安全設定作業步驟:
配置目錄許可權
Apache所在的根目錄(也就是D盤),只需要讀取的許可權,並且這個讀取許可權不需要繼承到子目錄與檔案(可以在使用權限設定進階裡選擇——應用到:只有該檔案夾——許可權:列出檔案夾/讀取資料, 讀取屬性,讀取擴充屬性,讀取許可權——確定)。
Apache安裝目錄的上級目錄(d:\www-s),需要“讀取”的許可權(和根目錄D盤的許可權雷同)。
Apache安裝目錄,需要“列出檔案夾目錄”和“讀取”的許可權(可以為了方便使用繼承)。
Apache安裝目錄下的子目錄使用權限設定
“bin”和“modules”目錄需要“讀取和運行”、“列出檔案夾和目錄”、“讀取”的許可權。
“logs”目錄需要“列出檔案夾和目錄”、“讀取”、“寫入”的許可權(若Apache安裝目錄的許可權使用啦繼承,可只添加“寫入”許可權即可)。
到這裡Apache的許可權已經設定完畢,接下來設定PHP的許可權
PHP目錄(PHP5)可簡單的設定為“讀取和運行”、“列出檔案夾和目錄”、“讀取”的許可權。
Mysql目錄下的bin檔案夾和檔案(mysql)需要為添加apache使用者的“遍曆檔案夾和運行檔案”、“列出檔案夾和讀取資料”的許可權(可以在許可權進階設定裡找到)。
到這裡Apache+Mysql+Php已經基本可以使用,接著配置網站根目錄許可權
網站根目錄(www\htdocs)的上級目錄www需要讀取(“列出檔案夾和讀取資料”、“讀取屬性”、“讀取擴充屬性”、“讀取許可權”)的許可權(和Apache的上級目錄許可權雷同,不需要繼承到子目錄和檔案中去)。
網站根目錄(htdocs)可簡單的設定“讀取”許可權就可以啦(然後可以根據需要對快取檔案夾設定可寫入權限)。
到這裡Apache+PHP+Mysql的環境受限制使用權限設定基本完成。
為Apache服務啟用受限制使用者
進入服務管理員(Services.msc,或者“我的電腦——屬性——管理——服務”),找到Apache的服務項(Apache2.2),設定屬性,登入使用者選擇受限使用者(Apache-u)輸入受限使用者的密碼,應用,確定。
這裡“確定”之後一般會有提示(已授予賬戶.\apache-u“以服務方式登入”的權利)。這個提示相當於在組策略(開始->管理工具->本地安全性原則,或者使用gpedit.msc開啟)中的“使用者權利分配”中選擇“作為服務登陸”,添加apache-u使用者。
可在工作管理員中查看httpd.exe進程的使用者名稱為apache-u,使用PHP+Mysql的程式都可正常運行。
到這裡已經完成啦“Windows下Apache應用環境目錄許可權”的受限制使用設定。
補充3:
可以在目錄(具有可寫入權限的)下建個 .htaccess 內容寫上:
複製代碼 代碼如下:
RewriteEngine On
Order Allow,Deny
Deny from all
<files ~ “.(css|js)$”>
Allow from all
</files>
css和js為允許的檔案擴充類型!
補充2:
1.Apache的使用權限設定錯誤提示
apache目錄,php目錄,網站目錄中的一個使用權限設定不夠都不能正常啟動Apache服務,一般提示為:
Windows 不能再 本機電腦 啟動 Apache2.2。有關更多資訊,查閱系統事件日誌。如果這是非 Microsoft服務,請與服務廠商聯絡,並參與特定服務錯誤碼 1。
查看系統事件日誌中的提示為:
Apache2.2 服務因 1 (0×1) 服務性錯誤而停止。
若是php的許可權配置錯誤會在應用程式事件記錄檔中有記錄。
2.另外Mysql的目錄許可權配置錯誤,不會對正常啟動Apache服務造成影響,但不能網站程式使用Mysql服務(PHPINFO中顯示並沒有載入Mysql模組)。
補充1:
這個東東在本地機子上用來做測試基本是不用理會這些許可權的,因為預設是使用系統使用者來啟動這個Apache服務的!不過若是暴露在外網就很危險啦!
安全是全方面的架構考慮,這裡說的僅僅是冰山一角,不能以點蓋面!
發現有遺漏的地方歡迎指正。。