首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unix权限,读取与执行(PHP上下文)

Unix权限,读取与执行(PHP上下文)
EN

Stack Overflow用户
提问于 2010-01-06 10:34:46
回答 2查看 17.8K关注 0票数 16

我有一个php脚本,需要连接到一个数据库。数据库的凭证存储在另一个php脚本中。

如果我将凭证文件的权限设置为661,使Public具有执行权限,但没有读取权限,这是否允许主脚本访问凭证并连接到数据库,同时防止服务器上具有用户帐户的用户查看凭证文件的内容?

我想我对读取和执行之间的区别感到困惑。php脚本(以www或类似的方式运行)需要读权限才能包含另一个php脚本并使用其中的任何内容吗?或者它只需要执行?读权限是否隐式授予execute权限?

子问题:如果我将我的所有脚本都设置为只有执行权限而不是读取权限,是否会有任何我应该预料到的陷阱?这是假设我将需要显式读取权限的所有文件(数据文件)设置为读取。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-06 10:49:21

就文件而言,执行权限与您无关-您的web服务器运行时所使用的用户帐户需要具有访问和读取相关文件的权限。为了遍历到某个目录,用户还需要对该目录拥有execute权限。

如果你想让你的脚本对web服务器可读(假设你以属于组"www“的帐户”www“运行),而不是系统上的其他用户,我会这么做(假设你的帐户是"myuser"):

代码语言:javascript
运行
复制
# Change owner to "myuser" and group to "www" for file(s) in question
chown myuser:www config.php

# 640: myuser has rw-, www has r--, world has ---
chmod 640 config.php

如果你想阻止世界读取"secrets“目录中的任何文件,只需禁用execute位:

代码语言:javascript
运行
复制
# 750: myuser has rwx, www has r-x, world has ---
chmod 750 secrets

如果您将所有脚本都设置为具有执行权限,但没有读取权限,则没有人可以对它们执行任何有用的操作(包括set服务器) ;-)

票数 10
EN

Stack Overflow用户

发布于 2010-01-06 10:36:47

脚本是读取的,而不是执行的。脚本的Execute权限告诉加载程序或内核读取shebang行,并将脚本传递给指定的解释器。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2010623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档