У меня есть следующий файл:
from fabric.api import *
env.hosts = ['samplehost']
env.user = 'foo'
env.password = 'bar'
env.shell = ''
def exec_ls():
run('ls')
run('ls -l')
, и я получаю следующий вывод:
[samplehost] Executing task 'exec_ls'
[samplehost] run: ls
[samplehost] out: sample.txt
[samplehost] run: ls -l
[samplehost] out: rbash: ls -l: command not found
Fatal error: run() encountered an error (return code 127) while executing 'ls -l'
Aborting.
Disconnecting from samplehost... done.
Оболочкой входа для пользователя 'foo' является '/ bin / rbash'.
Кажется, что если я выполняю команду с параметрами, она обрабатывается как одна команда (в то время как 'ls' без параметров работает отлично).
Обратите внимание, что я поставил пустуюshell, потому что в противном случае Fabric пытается использовать '/ bin / bash', и это не разрешено закрытой оболочкой.
Можно ли использовать Fabric в ограниченной оболочке?