我正在尝试通过我的 java 应用程序将 iptables 当前规则保存到 iptables 文件中。由于我没有权限在不登录 root 的情况下写入文件,因此我使用此命令。
sudo iptables-save | sudo tee /etc/sysconfig/iptables
当我在终端中不登录根目录的情况下输入上述命令时,它可以起作用(将规则保存到文件中),但是当我将相同的命令添加到我的 Java 程序中时,它不起作用。
下面是我在程序中实现它的方式
..内部方法
{
String command="sudo iptables-save | sudo tee /etc/sysconfig/iptables";
Process process=Runtime.getRuntime().exec(command);
}
这里似乎有什么问题? 有没有其他方法可以在不登录 root 的情况下将 iptables 规则保存到 iptables 文件中?
谢谢
答案1
当调用 sudo 时,它会要求输入启动它的用户的密码 - 以确保终端上的人确实是 中列出的同一个“joe” /etc/sudoers
。
您必须在程序中考虑这种行为。