在LNMP(Linux, Nginx, MySQL, PHP)环境下,管理用户权限是非常重要的,以确保系统的安全性和稳定性。以下是一些关键步骤和建议:
1. 用户账户管理
- 创建新用户:
sudo adduser username
- 删除用户:
sudo deluser username
- 修改用户密码:
sudo passwd username
2. 文件和目录权限
- 设置文件权限:
chmod 644 filename
- 设置目录权限:
chmod 755 directoryname
- 更改文件所有者:
sudo chown username:groupname filename
- 更改目录所有者:
sudo chown -R username:groupname directoryname
3. Nginx用户权限
- 配置Nginx运行用户:
编辑
/etc/nginx/nginx.conf
,找到user
指令并设置为非root用户:user www-data;
- 确保Nginx用户有足够的权限访问网站文件:
sudo chown -R www-data:www-data /var/www/html
4. MySQL/MariaDB用户权限
- 创建数据库用户:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
- 删除数据库用户:
DROP USER 'username'@'localhost'; FLUSH PRIVILEGES;
5. PHP-FPM用户权限
- 配置PHP-FPM运行用户:
编辑
/etc/php/7.x/fpm/pool.d/www.conf
,找到user
和group
指令并设置为非root用户:user = www-data group = www-data
- 确保PHP-FPM用户有足够的权限访问网站文件:
sudo chown -R www-data:www-data /var/www/html
6. SELinux/AppArmor
- SELinux:
如果系统启用了SELinux,确保Nginx和PHP-FPM进程有足够的权限:
sudo setsebool -P httpd_can_network_connect_db 1
- AppArmor: 如果系统启用了AppArmor,确保配置文件允许Nginx和PHP-FPM访问必要的文件和目录。
7. 定期审计和监控
- 使用
auditd
进行审计:sudo apt-get install auditd audispd-plugins sudo auditctl -a exit,always -F arch=b32 -S execve -k execute sudo auditctl -a exit,always -F arch=b64 -S execve -k execute
- 使用
fail2ban
防止暴力破解:sudo apt-get install fail2ban sudo systemctl enable fail2ban sudo systemctl start fail2ban
通过以上步骤,可以有效地管理LNMP环境下的用户权限,确保系统的安全性和稳定性。