gpt4 book ai didi

php - 尽管使用 PHP 具有适当的权限,但权限被拒绝

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:00 25 4
gpt4 key购买 nike

我正在尝试用 PHP 读取一个文件,但我收到了权限被拒绝的错误,尽管每个人都可以读取该文件。

PHP代码:

$config=file_get_contents('/opt/jenkins/home/config.xml');

错误:

Warning: file_get_contents(/opt/jenkins/home/config.xml): failed to open stream: Permission denied in [...]

文件系统权限:

有一个符号链接(symbolic link)指向 /opt/jenkins/home//var/lib/jenkins 并且每个人都对符号链接(symbolic link)、实际文件夹和文件具有读取权限.

$ ls -lh /opt/jenkins/
lrwxrwxrwx 1 sysadmin sysadmin 16 2011-08-04 08:12 home -> /var/lib/jenkins

$ ls -lh /var/lib/ | grep jenkins
drwxr-xr-- 6 jenkins adm 4.0K 2011-08-04 10:04 jenkins

$ ls -lh /var/lib/jenkins/config.xml
-rwxr-xr-- 1 jenkins adm 3.9K 2011-08-04 10:05 /var/lib/jenkins/config.xml

Apache 配置

配置为遵循符号链接(symbolic link)(Options All)。为 /var/lib/jenkins/ 添加一个 Directory 指令没有任何区别。

<Directory /opt/jenkins/home/>
Options All
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>

附加信息

我是通过符号链接(symbolic link)使用路径 ("/opt/jenkins/home/config.xml") 还是使用真实路径 ("/var/lib/jenkins/config.xml) xml") 我有同样的问题。

apache2 version=2.2.14-5ubuntu8.4
php version=5.3.2-1ubuntu4.9

知道我为什么会收到错误吗?

最佳答案

您的目录需要execute 权限才能工作。它似乎没有执行 world,并且由于 jenkins 可能不是 apache 用户,并且 apache 用户不在 adm 组中,所以它不会工作:

$ ls -lh /var/lib/ | grep jenkins
drwxr-xr-- 6 jenkins adm 4.0K 2011-08-04 10:04 jenkins

例如:

netcoder@netcoder:~$ mkdir foo
netcoder@netcoder:~$ echo hello > foo/bar
netcoder@netcoder:~$ chmod 777 foo/bar
netcoder@netcoder:~$ ls -lsah foo/bar
4.0K -rwxrwxrwx 1 netcoder netcoder 6 2011-08-04 08:22 foo/bar
netcoder@netcoder:~$ chmod 444 foo/
netcoder@netcoder:~$ ls -lsah | grep foo
4.0K dr--r--r-- 2 netcoder netcoder 4.0K 2011-08-04 08:22 foo
netcoder@netcoder:~$ cat foo/bar
cat: foo/bar: Permission denied

即使foo/bar0777 权限,如果目录没有执行权限,读取其内容将被拒绝。

您需要为目标目录和符号链接(symbolic link)设置权限。

关于php - 尽管使用 PHP 具有适当的权限,但权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48932861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com