温馨提示×

LNMP在Ubuntu上的权限管理方法

小樊
57
2025-04-17 11:25:57
栏目: 智能运维

在Ubuntu上配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)时,权限管理是一个重要的环节,以确保系统的安全性和稳定性。以下是一些基本的权限管理方法:

1. 用户和组管理

  • 创建专用用户:为Nginx、MySQL/MariaDB和PHP-FPM创建专用的系统用户。

    sudo adduser nginx sudo adduser mysql sudo adduser www-data # PHP-FPM默认用户 
  • 设置正确的权限:确保这些用户只能访问他们需要的文件和目录。

    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/php7.x-fpm.sock # 根据PHP版本调整 

2. Nginx权限配置

  • 配置文件权限:确保Nginx配置文件的权限设置正确。

    sudo chmod 644 /etc/nginx/nginx.conf sudo chmod 644 /etc/nginx/sites-available/* 
  • 静态文件权限:确保静态文件的权限允许Nginx读取。

    sudo find /var/www/html -type f -exec chmod 644 {} \; sudo find /var/www/html -type d -exec chmod 755 {} \; 

3. MySQL/MariaDB权限管理

  • 创建数据库和用户:使用mysql命令行工具或phpMyAdmin创建数据库和用户,并分配适当的权限。

    CREATE DATABASE mydatabase; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES; 
  • 限制远程访问:如果不需要远程访问,确保MySQL/MariaDB只允许本地连接。

    UPDATE mysql.user SET Host='localhost' WHERE User='myuser'; FLUSH PRIVILEGES; 

4. PHP-FPM权限配置

  • 配置文件权限:确保PHP-FPM配置文件的权限设置正确。

    sudo chmod 644 /etc/php/7.x/fpm/pool.d/www.conf 
  • 日志文件权限:确保PHP-FPM日志文件的权限允许PHP-FPM进程写入。

    sudo chown www-data:www-data /var/log/php7.x-fpm.log 

5. SELinux/AppArmor

  • SELinux:如果系统启用了SELinux,确保相关的策略配置正确。

    sudo setenforce 0 # 临时禁用SELinux进行测试 sudo ausearch -c 'nginx' --raw | audit2allow -M my-nginx sudo semodule -i my-nginx.pp 
  • AppArmor:如果系统启用了AppArmor,确保相关的配置文件正确。

    sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx 

6. 定期审计和更新

  • 定期审计:定期检查文件和目录的权限,确保没有不必要的权限开放。

    sudo find / -type d -perm 777 -exec chmod 755 {} \; sudo find / -type f -perm 666 -exec chmod 644 {} \; 
  • 更新系统和软件:定期更新系统和软件,以修补安全漏洞。

    sudo apt update && sudo apt upgrade 

通过以上步骤,可以有效地管理LNMP环境中的权限,确保系统的安全性和稳定性。

0