ubuntu

LNMP在Ubuntu上的权限如何设置

小樊
51
2025-08-15 10:34:13
栏目: 智能运维

以下是LNMP在Ubuntu上的权限设置要点:

  1. 用户与组管理
    • 为Nginx、MySQL、PHP-FPM创建专用用户(如www-data),避免使用root用户运行服务:
      sudo adduser www-data  # 若不存在  
      sudo usermod -aG www-data username  # 将用户加入www-data组  
      
  2. 文件与目录权限
    • 网站文件:权限设为644(所有者可读写,其他用户仅读),目录设为755(所有者可读写执行,其他用户仅读执行):
      sudo chmod 644 /var/www/html/*  
      sudo chmod 755 /var/www/html/  
      
    • 服务相关文件
      • Nginx配置文件:644权限,所有者为root
      • PHP-FPM配置文件:644权限,所有者为root,日志文件所有者为www-data
      • MySQL数据目录:所有者为mysql,权限750
  3. 服务运行权限
    • Nginx:修改/etc/nginx/nginx.conf,将user指令设为www-data,确保与网站文件所有者一致。
    • PHP-FPM:修改/etc/php/7.x/fpm/pool.d/www.conf,将usergroup设为www-data,并确保其可访问网站文件。
    • MySQL:确保数据库用户权限仅授予必要权限,限制远程访问(若不需要)。
  4. 安全增强
    • 禁用SELinux或配置其策略(若启用):
      sudo setenforce 0  # 临时禁用  
      sudo ausearch -c 'nginx' --raw | audit2allow -M nginx_policy  # 生成策略  
      sudo semodule -i nginx_policy.pp  # 安装策略  
      
    • 启用AppArmor并验证Nginx/PHP-FPM配置文件合规性:
      sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx  
      sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm  
      
  5. 定期维护
    • 使用auditd监控权限变更,fail2ban防止暴力破解。
    • 定期清理冗余文件,确保无777等过度宽松权限。

关键命令参考

注:生产环境中需严格遵循最小权限原则,避免直接使用root操作,优先通过sudo提权。

0
看了该问题的人还看了