如果我 ssh 到 pfSense,我必须选择 8 才能访问 shell,然后我可以以 root 身份运行我的命令。
如果我创建一个新用户,我可以 ssh 直接到 shell,但没有 root 访问权限。
我正在尝试编写一个脚本来让我登录,选择选项 8,然后运行我的命令。
$rules="rules information is place in this var. 1n is used for new lines"
ssh admin@192.168.1.1 << EOF
printf "8\n"
printf $rules > /home/rules;
EOF
这失败了,不会让我登录或创建我的文件。
如果我将其更改为:
ssh -tt admin@192.168.1.1 << EOF
8
echo -e "$rules" > /home/rules;
exit
0
EOF
我登录了,但我的 $rules 值回显到屏幕上,而不是我要创建的新规则文件中。
任何人都建议我如何做到这一点?
更新
我通过使用部分得到了这个工作:
printf "rules" > /home/rules
唯一的问题是$rules
包含一个未显示在结果文件中的变量。
例如:
$rules="rules information is places in this var.\nis used for new lines\n$additional['rules']['local']";
写入文件为:
rules information is places in this var.
is used for new lines
['rules']['local']
$additional
之前缺少注释['rules']['local']
有什么方法可以正确包含它吗?我尝试在 $additional 之前添加 \,我尝试更改 var,使其不包含在 " not ' 中,然后更新字符串中的单引号。
每次我最终都会将 $rules 中的每一行回显到远程命令行而不是远程文件。
有任何想法吗 ?谢谢