我需要能够通过 php 脚本修改我的 openvpn 授权文件。我已将我的 http 用户设置为 no-pass sudoer,因为这台机器只能在我的家庭网络中使用。
我目前有以下命令:
echo shell_exec("sudo echo '".$username."' > /etc/openvpn/auth.txt");
echo shell_exec("sudo echo '".$password."' >> /etc/openvpn/auth.txt");
但是在运行时,它们根本不会更改文件,也不会在 php 中提供任何输出。
我如何使它工作?
最佳答案
与其以 root 身份运行整个 shell 进程,这可能是不安全的,您可以以 root 身份运行副本:
(使用 bash):
sudo cp <(echo "$username") /etc/openvpn/auth.txt
(应该适用于任何 shell):
echo "$username" | sudo dd of=/etc/openvpn/auth.txt
关于php - 运行 shell 命令并将输出发送到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396951/