Plink не работает с файлом команд для git в sudo

Я использую plink.exe для автоматизации команд Git и это прекрасно работает. Но мне нужно использовать это с серверами с логином sudo

plink.exe -ssh argentium@186.118.154.164 -m commands.txt

мои команды.txt файл, например:

echo -e "MYPASSWORDn" | sudo -S -i
cd /home/www/argentium.ru
git checkout HEAD~3

и вывод выглядит как loged in, но git работает так, как будто он работает без логина sudo:

[sudo] password for argentium: fatal: Unable to create '/home/www/argentium.ru/.git/index.lock': Permission denied

С помощью шпатлевки.ехе работает нормально

сentos-7-x86_64-minimal @ 23.11.2016
-bash-4.2$ sudo -i
[sudo] password for argentium:
[root@stilnoeserebro ~]# cd /home/www/argentium.ru
[root@stilnoeserebro argentium.ru]# git checkout HEAD~3
Note: checking out 'HEAD~3'.
9
задан Eugen Gedroyc
20.04.2023 12:48 Количество просмотров материала 3255
Распечатать страницу

1 ответ

команда sudo -S -i считывает пароль и команды из стандартного ввода.

In echo -e "MYPASSWORD\n" | sudo -S -i стандартный ввод из канала, который возвращает новую строку, а затем конец файла после чтения пароля: остальные команды выполняются в обычной оболочке.

есть несколько способов: то, что ближе всего к тому, что вы закодировали, чтобы использовать здесь-документ: -

sudo -S -i <<EOF
MYPASSWORD
cd /home/www/argentium.ru
git checkout HEAD~3
EOF

кроме того, можно добавить все команды на вход stream: -

echo -e "MYPASSWORD\ncd /home/www/argentium.ru\ngit checkout HEAD~3" | sudo -S -i

обратите внимание, что я проверил это на нормальном bash Шелл, а у меня нет настройки, где я могу легко проверить с plink.

1
отвечен AFH 2023-04-21 20:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх