LNMP环境权限管理指南
LNMP(Linux+Nginx+MySQL+PHP)环境的权限管理是确保服务器安全的重要环节。以下是LNMP环境权限管理的主要方面:
1. 文件系统权限管理
基本原则
- 遵循最小权限原则
- 用户和组合理划分
- 目录和文件权限分离
推荐权限设置
# 网站根目录(如/var/www/html)
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 750 {} \;
find /var/www/html -type f -exec chmod 640 {} \;
# 需要写入权限的目录(如上传目录)
chmod -R 770 /var/www/html/uploads
2. Nginx权限管理
运行用户
# 在nginx.conf中设置
user www-data www-data;
配置文件权限
chown root:root /etc/nginx/nginx.conf
chmod 644 /etc/nginx/nginx.conf
3. MySQL权限管理
数据库用户权限
- 为每个应用创建独立数据库用户
- 只授予必要权限
CREATE USER 'appuser'@'localhost' IDENTIFIED BY '强密码';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
MySQL配置文件
chown root:root /etc/mysql/my.cnf
chmod 644 /etc/mysql/my.cnf
4. PHP权限管理
php-fpm配置
# 在pool配置中设置运行用户
[www]
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
禁用危险函数
在php.ini中:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
5. 其他安全措施
-
定期检查日志:
/var/log/nginx/
/var/log/mysql/
/var/log/php-fpm.log
-
使用SELinux或AppArmor增强安全
-
定期更新软件包:
apt update && apt upgrade
-
使用防火墙限制访问:
ufw allow 80/tcp ufw allow 443/tcp ufw enable
通过以上措施,可以大大提高LNMP环境的安全性,减少被攻击的风险。