Ubuntu LAMP權限管理主要涉及用戶、文件目錄、服務配置等方面,以下是關鍵操作步驟及安全建議:
Web目錄權限
/var/www/html
)所有者設為Apache用戶(www-data
):sudo chown -R www-data:www-data /var/www/html
755
(可讀可執行)、文件權限為644
(可讀可寫):sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
/var/www/html/uploads
)為770
:sudo chmod -R 770 /var/www/html/uploads
服務用戶配置
www-data
用戶運行:/etc/apache2/envvars
,確認以下行:export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
重啟Apache生效:sudo systemctl restart apache2
創建專用數據庫用戶
root
賬戶:mysql -u root -p
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
數據目錄權限
/var/lib/mysql
)僅mysql
用戶可訪問:sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 750 /var/lib/mysql
禁用危險權限
chmod 777
,優先通過chown
和最小權限原則控制訪問。sudo setenforce 0 # 臨時
sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 永久
配置文件權限
/etc/apache2/
):sudo chmod 644 /etc/apache2/*.conf
sudo chmod 755 /etc/apache2
PHP安全設置
php.ini
,限制文件訪問范圍和禁用危險函數:open_basedir = /var/www/html/
disable_functions = exec,passthru,shell_exec
ls -l /var/www/html # 查看目錄權限
sudo apache2ctl configtest # 檢查Apache配置
sudo apt update && sudo apt upgrade
注意:生產環境需嚴格遵循最小權限原則,開發環境可適當放寬,但避免全局開放寫權限。