【发布时间】:2013-06-28 03:07:38
【问题描述】:
我需要能够通过 php 脚本修改我的 openvpn 身份验证文件。我已将我的 http 用户设置为不通过 sudoer,因为这台机器仅在我的家庭网络中可用。
我目前有以下命令:
echo shell_exec("sudo echo '".$username."' > /etc/openvpn/auth.txt");
echo shell_exec("sudo echo '".$password."' >> /etc/openvpn/auth.txt");
但在运行时,它们根本不会更改文件,也不会在 php 中提供任何输出。
我该如何进行这项工作?
【问题讨论】:
-
你不能使用 file_put_contents 吗?
-
@marabutt:权限不允许
-
如何运行脚本?
-
@zerkms:从浏览器运行,通过 lighttpd 和 php-fpm
-
啊!成功!到文件的管道没有作为 sudo 运行,只有 echo 命令!由
echo shell_exec("sudo sh -c 'echo \"username\" > /etc/openvpn/auth.txt'");修复,以 root 身份运行新的 shell,然后在其中运行命令。