gpt4 book ai didi

php - 用户 ubuntu 的权限被拒绝,但 .csv 文件上的用户 www-data 却没有

转载 作者:行者123 更新时间:2023-12-04 19:15:36 25 4
gpt4 key购买 nike

尝试使用 php 访问时,我只在单个 .csv 文件上看到奇怪的 Ubuntu 权限问题。该文件是 list.csv,归 ubuntu:www-data 所有,ubuntu 用户属于 www-data 组。该网站的其余部分工作正常,没有权限问题,但我在尝试使用 php 加载此文件时看到以下错误:

PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'SplFileObject::__construct(xxx/list.csv): failed to open stream: Permission denied'

如果我做 chown www-data:www-data list.csv,我可以用 php 加载。如果 ubuntu 拥有这个文件,为什么即使 ubuntu 是 www-data 组的一部分,这个文件也不会被 php 加载?

此外,我可以以 ubuntu 用户 (vi list.csv) 读写打开此文件。

编辑:文件的权限是:-rwxr-xr-x 1 ubuntu www-data

再次编辑:将权限更改为 0644 -rw-r--r-- 1 ubuntu www-data no lucky

再编辑一些:文件位于具有 x 权限的目录中:
drwxr-xr-x 3 ubuntu www-data 4096 Jul 28 23:09 内容/

不确定它与执行权限有什么关系,因为我可以将所有者更改为 www-data:www-data 并加载文件。这似乎与拥有文件而不是 www-data 的用户 ubuntu 有关

编辑:这行代码出错了,试图将.csv文件加载到php SplFileObject中:
SplFileObject::__construct("xxx/content/list.csv");

最佳答案

我可以在 OP 中看到所有者和组之间的唯一区别是 write权限(您已尝试使用该组的 xrr)。所以,我怀疑你的 PHP正在尝试打开 write 中的文件模式。

要确认此尝试:

$myCSV = new SplFileInfo('YOUR CSV');
$myCSV->isReadable(); // should be true
$myCSV->isWritable(); //expecting this to be false

编辑:如果您的程序出现这种情况,您可以使用以下命令以读取模式打开文件: $myCSV->openFile('r')

关于php - 用户 ubuntu 的权限被拒绝,但 .csv 文件上的用户 www-data 却没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648186/

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