在sshd.conf末尾添加一行

时间:2019-08-30 17:29:50

标签: bash user-data

尝试将条目追加到sshd.conf的最后一行,但是将其追加到上一行的末尾。

echo -e "DenyGroups $(echo ${admin_membership_ad_group} | cut -f2 -d= |cut -f1 -d,|awk '{print tolower($0)}')" >> /etc/ssh/sshd.conf

echo "\nDenyGroups $(echo ${admin_membership_ad_group} | cut -f2 -d= |cut -f1 -d,|awk '{print tolower($0)}')" >> /etc/ssh/sshd.conf

期望:

Lastline
DenyGroups somegroup

结果:

LastlineDenyGroups somegroup

2 个答案:

答案 0 :(得分:1)

使用GNU sed:

sed -i '$a DenyGroups '"${admin_membership_ad_group}" /etc/ssh/sshd.conf
  

$:指的是最后一行

     

a:附加

答案 1 :(得分:0)

在您的上一个命令中,您忘记了-e,请参见以下测试:

$ # Create test file
$ echo -n LastLine > tst
$ # See what happens if you forget -e
$ echo -n '\n + echo without -e' >> tst
$ # Now add -e
$ echo -e "\nDenyGroups $(echo admin_membership_ad_group)" >> tst
$ # See the results
$ cat tst
LastLine\n + echo without -e
DenyGroups admin_membership_ad_group

请注意,在其他shell中,内置echo的行为有所不同。例如,在zsh中,即使不指定\n选项,也会发生-e的扩展。

相关问题