echo Something=Something > file
我可以使用paramiko的exec_command来执行cat
,grep
和ls
,但每当我尝试修改文件时,它什么都不做。在此之前我已经运行了su
。该文件与运行命令之前的文件完全相同。
答案 0 :(得分:2)
这是因为您必须为每个exec_command调用打开一个新通道。这会丢失su命令的身份验证,因为它与特定通道相关联。
你有几个选择。
选项3允许与paramiko交互使用ssh,保持状态信息不变。这就是su命令所需要的。它还允许您在shell连接周围创建一个pexpect类型的包装器,查看stdout管道以指示事情已完成,并且您可以通过stdin发送其他命令。在您阅读数据之前,请注意管道填满和阻塞。