温馨提示×

Ubuntu LNMP如何进行权限设置

小樊
63
2025-06-04 22:15:46
栏目: 智能运维

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

1. 用户和组设置

  • 创建专用的用户和组:为Nginx、MySQL/MariaDB和PHP-FPM创建专用的用户和组,避免使用root用户运行这些服务。
    sudo groupadd www-data
    sudo useradd -g www-data www-data
    sudo groupadd mysql
    sudo useradd -g mysql mysql
    sudo groupadd php-fpm
    sudo useradd -g php-fpm php-fpm
    

2. Nginx权限设置

  • Nginx用户和组:确保Nginx以www-data用户和组运行。
    user www-data;
    
  • 文件和目录权限:确保网站文件和目录的权限正确。
    sudo chown -R www-data:www-data /var/www/html
    sudo find /var/www/html -type d -exec chmod 755 {} \;
    sudo find /var/www/html -type f -exec chmod 644 {} \;
    

3. MySQL/MariaDB权限设置

  • 数据目录权限:确保MySQL/MariaDB的数据目录权限正确。
    sudo chown -R mysql:mysql /var/lib/mysql
    sudo chmod -R 750 /var/lib/mysql
    
  • 配置文件权限:确保MySQL/MariaDB的配置文件权限正确。
    sudo chown mysql:mysql /etc/mysql/my.cnf
    sudo chmod 640 /etc/mysql/my.cnf
    

4. PHP-FPM权限设置

  • PHP-FPM用户和组:确保PHP-FPM以php-fpm用户和组运行。
    ; /etc/php/7.4/fpm/pool.d/www.conf
    user = php-fpm
    group = php-fpm
    
  • 文件和目录权限:确保PHP文件和目录的权限正确。
    sudo chown -R www-data:www-data /var/www/html
    sudo find /var/www/html -type d -exec chmod 755 {} \;
    sudo find /var/www/html -type f -exec chmod 644 {} \;
    

5. SELinux/AppArmor设置(可选)

  • SELinux:如果系统启用了SELinux,确保相关服务和文件的安全上下文正确。
    sudo chcon -Rv --type=httpd_sys_content_t /var/www/html
    sudo chcon -Rv --type=httpd_sys_rw_content_t /var/log/httpd
    
  • AppArmor:如果系统启用了AppArmor,确保相关配置文件正确。
    sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
    sudo aa-enforce /etc/apparmor.d/usr.sbin.mysqld
    sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm
    

6. 定期检查和更新权限

  • 定期检查:定期检查文件和目录的权限,确保它们符合安全要求。
    sudo find / -type d -exec chmod 755 {} \;
    sudo find / -type f -exec chmod 644 {} \;
    
  • 更新权限:在部署新应用或更新现有应用时,及时更新相关文件和目录的权限。

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

0