php - 运行 shell 命令并将输出发送到文件?

标签 php linux bash

我需要能够通过 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/

相关文章:

php - Woocommerce 更改结帐页面上的结帐总额

python - 在 linux : No module named dal 上使用 Django 导入错误

linux - ssh -V 保存到变量

bash - 获取提示中的多个值并存储在数组中

bash - 从命令行/bash 设置 VLC 音量

php - 为什么 Apache 没有在 XAMPP 上启动

php - 使用旧的 mysql_* API 从特定行中选择特定列

php - 如何使 PHP 进行此查询

仅在 Linux 上 AsyncHTTPClient 中的 Python Tornado 阻塞。不适用于 Windows 或 OSX

linux - Gtk3 Comboboxtext 小部件默认项