linux - 尝试读取具有 644 权限的文件时权限被拒绝

标签 linux permissions

我正在尝试为 Web 服务器 (lighttpd) 编写 PHP 脚本来读取另一个用户的文件。 Web 服务器在用户 http:

下运行
http      1929   336  0 Nov20 /usr/bin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

脚本尝试读取的文件具有以下权限:

-rw-r--r-- 1 pi www-data 721 Oct 30 05:20 /home/pi/bmSunday

我认为这意味着任何用户都可以阅读它。

脚本中的 fopen 导致权限被拒绝:

Warning: fopen(/home/pi/bmSunday): failed to open stream: Permission denied in /srv/http/p1/index.php

我正在运行 Arch Linux。

uname -r 

显示:

4.4.32-2-ARCH

我需要在文件上设置什么权限才能允许用户 http 读取它?

顺便说一句,我是否正确假设我也可以通过以下方式测试权限:

sudo -u http cat /home/pi/bmSunday

使用上面的命令,结果是:

cat: /home/pi/bmSunday: Permission denied

最佳答案

目录权限可能错误,http可能没有执行权限。添加世界执行权限:

chmod o+x /home/pi

关于linux - 尝试读取具有 644 权限的文件时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732101/

相关文章:

linux - 使用额外的 tty session 耗尽电池生命周期?

c - 在用户定义的telnet服务器中如何获取客户端提供的telnet选项

linux - 使用 awk 命令中获取的字段进行 grep

linux - 如何在 ubuntu 上从源代码安装 postgres?

Android 10 (api-29) 文件写入

c - 以非 root 用户身份调用外部 shell 脚本失败

ios - Facebook SDK是否区分iOS调试版本与发布版本

ruby - 在 Ruby 中验证对 S3 对象的权限

Android 多个应用之间的签名级别权​​限

Android SDK - aapt : error while loading shared libraries: libc++. 所以