나는 특정 라인의 끝에서 문자열을 추가하는 perl 하나의 라이너를 가지고 있으며 호스트에서 하나의 라이너를 실행할 때 작동합니다. 예를 들어, 내가 줄 끝에 'boy857sr의 XXXXXXX'를 추가 할 찾고 있어요 완벽하게 'AllowUsers'파이썬 스크립트 내에서 perl 하나의 라이너
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
는하지만, 그것은 'AllowUsers'행을 닦고, 또 다른 줄을 추가 아래에 보이는 :
#RSAAuthentication yes
^A kn857sr xxxxxxx
여기 파이썬 스크립트입니다.
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_ 게시물이 더 이상 upvoted되지 않는지 궁금합니다. 그것은 하루에 몇 가지 질문 중 하나입니다 명확한 문제 성명 ** 및 ** 좋은 [mcve]! 나는 그들 중 더 많은 것이 있었으면 좋겠다. – PerlDuck