在Ubuntu系统中配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境时,管理用户权限是一个重要的安全步骤。以下是一些基本步骤和建议,帮助你管理用户权限:
创建专用用户:为Nginx、MySQL/MariaDB和PHP-FPM等服务创建专用的系统用户和组。
sudo adduser --system --group --no-create-home nginx
sudo adduser --system --group --no-create-home mysql
sudo adduser --system --group --no-create-home www-data
设置权限:确保这些服务只能访问它们需要的文件和目录。
sudo chown -R nginx:nginx /var/www/html
sudo chown -R mysql:mysql /var/lib/mysql
sudo chown -R www-data:www-data /run/php
配置文件:编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf
),确保user
指令设置为非特权用户。
user www-data;
静态文件权限:确保静态文件和目录的权限设置正确。
sudo chmod -R 755 /var/www/html
sudo chown -R www-data:www-data /var/www/html
创建数据库用户:为应用程序创建专用的数据库用户,并授予最小权限。
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
限制远程访问:如果不需要远程访问,确保MySQL/MariaDB只允许本地连接。
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON appdb.* FROM 'appuser'@'%';
FLUSH PRIVILEGES;
配置文件:编辑PHP-FPM配置文件(通常位于/etc/php/7.x/fpm/pool.d/www.conf
),确保user
和group
指令设置为非特权用户。
user = www-data
group = www-data
权限设置:确保PHP-FPM进程只能访问必要的文件和目录。
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
ufw
或iptables
配置防火墙规则,限制对Nginx和MySQL/MariaDB端口的访问。sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
sudo ufw enable
通过以上步骤,你可以有效地管理Ubuntu LNMP环境中的用户权限,提高系统的安全性。