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
注意:生产环境需严格遵循最小权限原则,开发环境可适当放宽,但避免全局开放写权限。