温馨提示×

ubuntu lamp权限管理如何操作

小樊
51
2025-08-07 06:09:50
栏目: 智能运维

Ubuntu LAMP权限管理主要涉及用户、文件目录、服务配置等方面,以下是关键操作步骤及安全建议:

一、基础权限设置

  1. Web目录权限

    • 将Web根目录(通常为/var/www/html)所有者设为Apache用户(www-data):
      sudo chown -R www-data:www-data /var/www/html  
      
    • 设置目录权限为755(可读可执行)、文件权限为644(可读可写):
      sudo find /var/www/html -type d -exec chmod 755 {} \;  
      sudo find /var/www/html -type f -exec chmod 644 {} \;  
      
    • 若需上传功能,单独设置上传目录权限(如/var/www/html/uploads)为770
      sudo chmod -R 770 /var/www/html/uploads  
      
  2. 服务用户配置

    • 确保Apache/PHP以www-data用户运行:
      编辑/etc/apache2/envvars,确认以下行:
      export APACHE_RUN_USER=www-data  
      export APACHE_RUN_GROUP=www-data  
      
      重启Apache生效:
      sudo systemctl restart apache2  
      

二、数据库权限管理

  1. 创建专用数据库用户

    • 登录MySQL,避免使用root账户:
      mysql -u root -p  
      
    • 创建用户并授权(仅允许本地访问):
      CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strongpassword';  
      GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'localhost';  
      FLUSH PRIVILEGES;  
      
  2. 数据目录权限

    • 确保MySQL数据目录(/var/lib/mysql)仅mysql用户可访问:
      sudo chown -R mysql:mysql /var/lib/mysql  
      sudo chmod -R 750 /var/lib/mysql  
      

三、安全增强配置

  1. 禁用危险权限

    • 避免使用chmod 777,优先通过chown和最小权限原则控制访问。
    • 禁用SELinux(若启用):
      sudo setenforce 0  # 临时  
      sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  # 永久  
      
  2. 配置文件权限

    • 限制Apache配置文件访问(如/etc/apache2/):
      sudo chmod 644 /etc/apache2/*.conf  
      sudo chmod 755 /etc/apache2  
      
  3. PHP安全设置

    • 编辑php.ini,限制文件访问范围和禁用危险函数:
      open_basedir = /var/www/html/  
      disable_functions = exec,passthru,shell_exec  
      

四、验证与维护

  • 定期检查权限:
    ls -l /var/www/html  # 查看目录权限  
    sudo apache2ctl configtest  # 检查Apache配置  
    
  • 更新系统和软件包:
    sudo apt update && sudo apt upgrade  
    

注意:生产环境需严格遵循最小权限原则,开发环境可适当放宽,但避免全局开放写权限。

0