ubuntu lamp如何管理权限
导读:Ubuntu LAMP 权限管理实操指南 一 基础安全基线 确认运行身份:Ubuntu 上 Apache 默认以 www-data:www-data 运行,可用 ps aux | grep apache2 查看;如需变更,编辑 /etc/...
Ubuntu LAMP 权限管理实操指南
一 基础安全基线
- 确认运行身份:Ubuntu 上 Apache 默认以 www-data:www-data 运行,可用
ps aux | grep apache2查看;如需变更,编辑 /etc/apache2/envvars 中的APACHE_RUN_USER与APACHE_RUN_GROUP,然后重启:sudo systemctl restart apache2。 - 目录所有权与权限:网站根目录(如 /var/www/html)建议归属 www-data,权限采用“目录 755、文件 644”的最小集:
sudo chown -R www-data:www-data /var/www/htmlfind /var/www/html -type d -exec chmod 755 { } \;find /var/www/html -type f -exec chmod 644 { } \;
- 安全提醒:避免使用 777;若 PHP 仍需写入(如上传、缓存、会话),仅对“需要写入的子目录”单独放开写权限(见下文“按目录细化权限”)。
二 按目录细化权限
- 上传目录(例如 /var/www/html/uploads):仅赋予 www-data 写权限,其他用户只读/不可执行:
sudo chown -R www-data:www-data /var/www/html/uploadssudo chmod -R 755 /var/www/html/uploads(目录需执行位以便进入)find /var/www/html/uploads -type f -exec chmod 644 { } \;(文件保持 644)
- 日志与缓存目录(如 var/log、var/cache 或框架的 storage、cache 目录):同样只给 www-data 写权限,必要时将部署用户加入 www-data 组以便本地维护:
sudo usermod -a -G www-data $USER(将当前登录用户加入 www-data 组)- 目录:
sudo chown -R www-data:www-data /var/www/html/var/{ log,cache}与chmod 755 - 文件:
find /var/www/html/var/{ log,cache} -type f -exec chmod 644 { } \;
- 原则:严格遵循“最小权限”,能 755/644 解决的,绝不上 777;写入需求只下放给具体子目录。
三 PHP 与 Apache 相关权限控制
- PHP 配置:编辑对应版本的 php.ini(如 /etc/php/8.1/apache2/php.ini),按需设置安全项,例如
open_basedir = /var/www/html/:/tmp/,限制脚本可访问路径。 - Apache 运行身份:如需变更,编辑 /etc/apache2/envvars 的
APACHE_RUN_USER/APACHE_RUN_GROUP并重启服务。 - 安全模块:
- AppArmor:检查状态
sudo aa-status;若需调试可用sudo aa-complain /usr/sbin/apache2,生产环境建议编写精确策略而非完全放行。 - SELinux:Ubuntu 桌面/服务器通常默认不启用;若启用可用
sestatus查看状态,必要时调整策略或临时sudo setenforce 0(仅测试用途)。
- AppArmor:检查状态
四 MySQL 权限管理
- 最小权限原则:为应用创建专用数据库与用户,仅授予目标库的必要权限,避免使用
GRANT ALL PRIVILEGES ON *.*。 - 示例(在 MySQL 提示符下):
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword!';GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON myapp.* TO 'appuser'@'localhost';FLUSH PRIVILEGES;
- 远程访问(如确需):创建
'appuser'@'your_ip'并限制来源 IP,避免使用通配主机'%'。
五 快速排查与常用命令
- 身份与运行用户:
ps aux | grep apache2、id www-data - 权限核查:
ls -l /var/www/html、namei -l /var/www/html/index.php(逐层检查路径权限) - Apache 配置生效:
sudo systemctl restart apache2 - AppArmor/SELinux:
sudo aa-status、sudo aa-complain /usr/sbin/apache2、sestatus - 安全基线回看:目录归属 www-data:www-data,权限“目录 755、文件 644”,写入目录单独放开,避免 777。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp如何管理权限
本文地址: https://pptw.com/jishu/752779.html
