我的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服务器外”还有一些文件需要从网站进行编辑。
所以请告诉我,还有另一个简单的选择吗?
答案 0 :(得分:0)
您尝试做的事情听起来很危险。
如果您有权访问服务器,也许可以尝试使用PHP来简单地触发SSH密钥对的创建。然后,服务器上的脚本(例如cront作业)将使用例如root权限创建密钥,然后将其放置在PHP可以访问的文件夹中。
我想说的是将任务简单地委派给另一个比www-data具有更多特权的脚本。