Когда я дважды использую sudo в двух конвейерных командах, я получаю следующий вывод:
$ sudo echo 'hello world' | sudo cat
[sudo] password for zoey: [sudo] password for zoey:
И должен дважды ввести свой пароль. Первый раз он скрыт, как обычно, но второй показан открытым текстом.
$ sudo echo 'hello world' | sudo cat
[sudo] password for zoey: [sudo] password for zoey:
password123456seven
hello world
После выхода из команды все, что я ввожу в командную строку, скрывается, как если бы я вводил пароль, хотя выходные данные команды работают (в основном) нормально. Такое поведение продолжается, пока я не закрою терминал.
Я пытался:
$ echo 'hello world' | sudo cat
$ sudo echo 'hello world' | cat
И оба, кажется, ведут себя нормально.
Я не хочу использовать $ sudo bash -c "echo \'hello world\' | cat"
, который кажется чересчур неуклюжим и превращает цитируемый текст в кошмар.
Также, прежде чем кто-либо спросит, да, я знаю, что echo
и cat
не часто требуют корневых разрешений.
Не уверенный, если это заставляет Вас чувствовать себя лучше, но что Вы наблюдаете, не происходит в Ubuntu 16.04. Это действительно происходит в Ubuntu 15.10 (который является тем, что я предполагаю, что Вы используете... или возможно что-то более старое?).
, К счастью, у меня есть 16.04 и 15,10 машин для попытки. Под 16,04, я только должен ввести пароль однажды.
Не уверенный, где различие, все же. Я просто проверил, и оба используют ту же версию удара (4.3.42). Я не полагаю, что существуют любые настройки в моем .bash* файлы, который изменяет поведение...
(Возможно, можно попробовать загрузочный диск Ubuntu 16.04 для подтверждения себя, что я вижу?)
dconf
/gsettings
? – pomsky 1 November 2017 в 22:18