Недавно я начал изучать ткань для удаленного развертывания. Мне нужно переключиться на пользователя-diff (от того, на который я зашел), и я не могу понять это. Это даже возможно, если да, то как? Мой текущий пользователь не имеет разрешений sudo
.
Я попытался изменить следующие переменные среды
env.sudo_prefix = "su newUser -c "
env.sudo_prompt = "Password:"
Но ткань не ждет ввода пароля для "newUser" и не работает.
out: Password:
[[email protected]] out: su: incorrect password
Fatal error: sudo() received nonzero return code 1 while executing!
Requested: touch x
Executed: su newUser -c -u "root" /bin/bash -l -c "cd /home/oldUser/upgrade && touch x"
Aborting.
Disconnecting from [email protected] done.
Update:
Как предположил J.F.Sebastian, su newUser -c
работает, но он запрашивает пароль для каждой команды для каждого сервера, что поражает цель автоматизации. Есть ли способ в Fabric передать одно значение по подсказке (в этом случае всегда Password:
)