登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
PHP 开发者应该理解的 Linux 入门权限指南 ...
PHP 开发者应该理解的 Linux 入门权限指南
[ 复制链接 ]
布相
2025-10-12 15:10:03
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
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
相关帖子
网贷开源PHP贷款源码-小额贷款php源码
网贷小额贷款php网站源码
小额网贷/借贷源码-php零用贷/贷款源码
网贷PHP仿百度钱包p2p小额网贷借款网站源码
php小说采集源码下载|手机小说源码带5条采集规则
PHP小说漫画网站源码下载-小说漫画二合一cms系统源码
对Meta的MusicGen的理解
对于原型、原型链和继承的理解
刚入职的AIops菜鸡,应该知道gang-scheduling和binpack调度吗?
Linux命令自检
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
程序
网贷开源PHP贷款源码-小额贷款php源码
1
14
新程序
2025-12-04
程序
网贷小额贷款php网站源码
0
8
新程序
2025-12-04
程序
小额网贷/借贷源码-php零用贷/贷款源码
0
9
新程序
2025-12-04
程序
网贷PHP仿百度钱包p2p小额网贷借款网站源码
0
7
新程序
2025-12-04
程序
php小说采集源码下载|手机小说源码带5条采集规则
1
10
新程序
2025-12-04
程序
PHP小说漫画网站源码下载-小说漫画二合一cms系统源码
0
12
新程序
2025-12-04
业界
对Meta的MusicGen的理解
1
450
愿隙
2025-12-04
业界
对于原型、原型链和继承的理解
0
366
嗳歉楞
2025-12-05
业界
刚入职的AIops菜鸡,应该知道gang-scheduling和binpack调度吗?
0
784
啖曼烟
2025-12-06
安全
Linux命令自检
0
347
椎蕊
2025-12-07
回复
(1)
巴沛若
2025-11-3 14:29:10
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
科技
代码
程序
签约作者
程序园优秀签约作者
发帖
布相
2025-11-3 14:29:10
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845355
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多