【发布时间】:2017-11-18 17:07:50
【问题描述】:
我有一个 perl one 衬垫,它在特定行的末尾附加一个字符串,当我在主机上运行 one 衬垫时它可以工作。例如,我希望在以“AllowUsers”开头的行的末尾附加“boy857sr xxxxxxx”
perl -pi.bak -e 's/^(AllowUsers.*)/\1 boy857sr xxxxxxx/g;' /etc/ssh/sshd_config
完美运行!
AllowUsers boy857bt soladmin svc-Orion_SAM solarw boy857lj boy806nk boy806sk boy857sr xxxxxxx
但是当我在 python 脚本中运行它时,它会清除“AllowUsers”行并添加另一行,如下所示:
#RSAAuthentication yes
^A kn857sr xxxxxxx
这是python脚本。
import pxssh
my_list=[
"server121"
]
for i in my_list:
s = pxssh.pxssh(timeout=15, maxread=2000000)
s.SSH_OPTS += "-o StrictHostKeyChecking=no"
s.SSH_OPTS += "-o UserKnownHostsFile=/dev/null"
s.login(i,'username','password')
print (i)
s.sendline('/usr/local/bin/sudo su -')
s.expect('Password: ')
s.sendline('xxxxxxx')
s.prompt()
print s.before
s.sendline('perl -pi.bak -e \'s/^(AllowUsers.*)/\1 boy857sr xxxxxxx/g;\'
/etc/ssh/sshd_config')
s.prompt()
print s.before
s.sendline('exit')
s.logout()
【问题讨论】:
-
其实我也想知道为什么 your 的帖子没有得到更多的支持。这是每天为数不多的几个问题之一,有一个明确的问题陈述和一个很好的minimal reproducible example!我希望有更多。