当我尝试从我的主文件夹中获取文件内容时,权限被拒绝


Permission denied when I try to get file contents from my home folder

>我与一个名为 system_user 的系统用户一起运行 cron 作业,我让 cron 作业将其输出保存到system_user的主文件夹/home/system_user/outputDir/outputFile.txt outputFile.txt的文件。

这一切都有效,但现在我需要在位于/var/www/html/scripts/phpScriptFile.php的 php 脚本中访问此文件,并且我收到权限被拒绝错误。

我发现php脚本是用apache用户运行的,所以我这样做了:

sudo chown system_user:apache outputFile.txt

但这无济于事。

如果cron在比方说/var/www/html/scripts/文件夹中输出文件,那么我不会收到此权限错误。

我试图将我的输出文件.txt移出/var/www/html 文件夹的原因是,如果我离开它,那么可以通过 http 协议访问它,我不希望任何人抓住这个文件的内容。

请指教。

可能包含该文件的文件夹中的某些权限不正确。

此外,可能是 apache 用户的组未命名apache或未正确分配组权限。

重新分配您的用户组:

sudo chown system_user:system_user outputFile.txt

并测试授予对整个路径的一般读取权限:

chmod o+rx /home/system_user
chmod o+rx /home/system_user/outputDir
chmod o+r /home/system_user/outputDir/outputFile.txt

如果这有效(应该可以(,那么您可以尝试调查组名称是否正确,将访问权限移动到组部分。

outputFile.txt的权限是什么?

sudo chown system_user:apache outputFile.txt

这让system_user成为所有者,但将组更改为 apache。要使其正常工作,文件必须至少rw-r-----,这可以通过chmod 640 outputFile.txt来完成。