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

标签 php csv ubuntu

尝试使用 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/

相关文章:

php - 无法使用 PHP 程序获取 MySQL 行数据

mysql - 如何控制表单中的字符编码是否正确存储了法语口音

windows - 从 Ubuntu 9.10 访问 Windows 上的 svn 存储库

bash - 使用 imagemagick 的宽度和高度识别

php - 在 Ubuntu 中使用 CLI 终端访问 symfony 1.4 URL

php - 需要帮助为 UBUNTU 14.0 的 couchbase server 4.0.0 安装 C SDK 和 PHP SDK

php - 从 mySQL 回显 HTML 时如何在递增和递减行之间切换

php - float 问题! (在 PHP 中)

php - 对 SEO 友好的 PHP 链接感到困惑

matlab - csv 格式 matlab/gephi