登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
PHP 开发者应该理解的 Linux 入门权限指南 ...
PHP 开发者应该理解的 Linux 入门权限指南
[ 复制链接 ]
布相
2025-10-12 15:10:03
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
PHP 开发者应该理解的 Linux 入门权限指南
如果你曾经将 PHP 应用部署到 Linux 服务器并遇到 Permission denied 错误(通常出现在最糟糕的时候),你并不孤单。在理解 Linux 权限之前,它们确实会让人感到困惑。本文将帮助你理解 PHP 代码实际运行时涉及的用户、文件组以及那些 rwx 字母的真正含义。
原文链接-PHP 开发者应该理解的 Linux 入门权限指南
10秒速览
Linux 中的每个文件或目录都有:
一个所有者(用户)
一个所属组
三组权限:所有者权限、组权限和其他用户权限
权限分为三种:
r = 读取
w = 写入
x = 执行(对文件)或"可进入"(对目录)
当 PHP 在服务器上运行时,你的代码通常以 web 服务器用户的身份执行(例如 Debian/Ubuntu 上的 www-data,CentOS/Red Hat 上的 apache,或者某些设置中的 nginx)——或者作为你配置的 PHP-FPM 池用户运行。大多数"在本地可以但在生产环境不行"的权限问题都可以归结为"到底是哪个用户在运行这段代码?"
专业解读权限
运行 ls -l 查看详情:
$ ls -l
-rw-r--r-- 1 deploy www-data 4238 Sep 17 10:12 index.php
drwxr-xr-x 2 deploy www-data 4096 Sep 17 10:12 public
drwxrwxr-x 4 deploy www-data 4096 Sep 17 10:12 storage
复制代码
-rw-r--r-- 的解析:
第一个字符:文件类型(- 表示普通文件,d 表示目录)
接下来 3 个:所有者权限(rw-)
再 3 个:组权限(r--)
最后 3 个:其他用户权限(r--)
所以 index.php 对所有人可读,但只有所有者可写。
你还会看到所有者(deploy)和组(www-data)。如果 PHP-FPM 以 www-data 运行,通常最简单的修复方法是给组设置正确的权限。
八进制 vs 符号模式(以及何时使用)
你可以使用以下两种方式设置权限:
符号表示法:chmod g+w storage(给组添加写权限)
八进制表示法:chmod 775 storage(所有者 rwx=7,组 rwx=7,其他用户 r-x=5)
常用的八进制组合:
644 用于文件:所有者可读写,其他用户只读
755 用于目录:所有者完全权限,其他用户可读可执行
664/775 当组也需要写权限时(共享部署)
避免使用 777——这是安全风险,几乎从不需要。
文件 vs 目录:微妙但重要的区别
文件
r:可以读取内容
w:可以修改内容
x:可以执行(作为程序或脚本运行)
目录
r:可以列出目录中的文件名
w:可以在目录中创建/删除/重命名条目
x:可以进入(遍历)该目录
这就是为什么可写上传目录同时需要 w 和 x 权限:
# 对于 PHP 需要写入的上传目录:
chmod 775 uploads
# 或者如果只需要所有者写入:
chmod 755 uploads # (但要确保所有权与 FPM 用户匹配)
复制代码
所有权:chown 和 chgrp
如果 web 服务器用户需要写入某个目录(例如 storage、cache、uploads),需要调整所有权或组:
# 将 web 服务器组设为所有者组
sudo chgrp -R www-data storage
# 允许组写入(和进入)目录
sudo chmod -R g+rwX storage
复制代码
大写的 X 只对目录(和已有的可执行文件)设置执行权限,这比通配符 +x 更安全。
如果你希望 web 服务器用户拥有文件:
sudo chown -R www-data:www-data storage
复制代码
这在单用户服务器上很常见。在多用户部署中,建议保持代码库归人类用户所有(例如 deploy),同时使用共享组(例如 www-data)和组写权限。
umask:谁设置默认权限?
创建新文件时,它们会从一个"基础"值开始(通常是文件 666,目录 777),然后减去 umask 指定的权限。
umask 为 022 会得到 644 文件和 755 目录
umask 为 002 会得到 664 文件和 775 目录(组可写)
你可以在服务配置中(例如 PHP-FPM 的 systemd 单元文件)或 PHP 内部(进程范围内)设置 umask。
在 PHP 中(进程生命周期内):
[code]
PHP
开发者
应该
理解
Linux
相关帖子
理解 netstat
理解Linux虚拟网桥:为何连接的网卡会“降级”为端口?
Linux Mint在更新内核后出现网卡未识别的问题
深入理解MCP:AI 应用与外部世界的桥梁
华为开发者空间,让根技术开发触手可及
开发者必备:10分钟零代码搭BUG管理系统
Linux Mint下使用vscode编译C++代码
linux异常磁盘lvm恢复---惜分飞
深入理解电脑C盘的核心地位与文件系统的选型逻辑
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
理解 netstat
0
78
系味
2025-12-08
业界
理解Linux虚拟网桥:为何连接的网卡会“降级”为端口?
0
859
寿爹座
2025-12-08
安全
Linux Mint在更新内核后出现网卡未识别的问题
0
72
汇干环
2025-12-09
业界
深入理解MCP:AI 应用与外部世界的桥梁
0
91
姘轻拎
2025-12-09
业界
华为开发者空间,让根技术开发触手可及
0
420
眩疝诺
2025-12-09
安全
开发者必备:10分钟零代码搭BUG管理系统
0
324
司寇涵涵
2025-12-09
安全
Linux Mint下使用vscode编译C++代码
0
711
聊账
2025-12-10
安全
linux异常磁盘lvm恢复---惜分飞
0
830
峰邑
2025-12-10
安全
深入理解电脑C盘的核心地位与文件系统的选型逻辑
0
250
侧胥咽
2025-12-10
回复
(2)
巴沛若
2025-11-3 14:29:10
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
掳诚
15 小时前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
科技
签约作者
程序园优秀签约作者
发帖
布相
15 小时前
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991122
4
xiangqian
638210
5
宋子
9984
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9951
10
匝抽
9986
查看更多