'su' при использовании 'script' в Docker возвращает разные результаты по сравнению со стандартной средой - PullRequest
0 голосов
/ 15 июня 2019

Мне нужно запросить определенные команды через su, включая пароль в одной строке.Я нашел решение, и оно работает в стандартной среде (Ubuntu) (подробнее о решении здесь ):

{ sleep 1; echo password; } | script -qc 'su -l user -c id' /dev/null | tail -n +2

Но я столкнулся с проблемой, что это решение не подходитв среде контейнера Docker

Script завершает команду, не ожидая echo, и в результате я получаю:

su: Authentication failure

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 15 июня 2019

Передача пароля для su через stdin проблематична по разным причинам: самая большая из них, вероятно, заключается в том, что ваш пароль окажется в истории.

Вместо этого вы можете:

  • Вызовите весь сценарий как определенного пользователя и, таким образом, введите пароль вручную
  • Используйте sudo с соответствующей NOPASSWD конфигурацией sudoers
  • В вашем случае вы используетедокер, так что вы можете просто установить USER в вашем Dockerfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...