如何在不更改所有者或组的情况下创建或编辑非www-data拥有或分组的文件?

时间:2019-06-11 16:29:29

标签: php apache permissions embedded-linux file-permissions

我的PHP脚本创建了一个ssh密钥对,并将其安全(file_put_contents)保存到/home/pi/.ssh/. 该脚本可以从命令行正常运行。 但是从网站(以 www-data 用户)执行它失败: “警告:file_put_contents(/home/pi/.ssh/...)无法打开流:权限被拒绝。”

我不想更改文件组或所有者。 (我尝试过测试,并且可以正常工作)。

我不想在文件编辑中使用多余的密码。

我看到了这个问题: allow php files to write to locations other than those owned by www-data 这种解决方案不是我想要的。

我尝试将路径(/home/pi/.ssh/)和path + filname添加到/etc/sudoers。 这行不通。看来sudoers仅适用于可执行文件吗?!

我希望有一个像/etc/sudoers中的条目那样的解决方案。 因为“ Web服务器外”还有一些文件需要从网站进行编辑。

所以请告诉我,还有另一个简单的选择吗?

1 个答案:

答案 0 :(得分:0)

您尝试做的事情听起来很危险。

如果您有权访问服务器,也许可以尝试使用PHP来简单地触发SSH密钥对的创建。然后,服务器上的脚本(例如cront作业)将使用例如root权限创建密钥,然后将其放置在PHP可以访问的文件夹中。

我想说的是将任务简单地委派给另一个比www-data具有更多特权的脚本。