Странное поведение при использовании sudo с pipe

Когда я дважды использую 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 не часто требуют корневых разрешений.

0
задан 10 May 2016 в 11:10

1 ответ

Не уверенный, если это заставляет Вас чувствовать себя лучше, но что Вы наблюдаете, не происходит в Ubuntu 16.04. Это действительно происходит в Ubuntu 15.10 (который является тем, что я предполагаю, что Вы используете... или возможно что-то более старое?).

, К счастью, у меня есть 16.04 и 15,10 машин для попытки. Под 16,04, я только должен ввести пароль однажды.

Не уверенный, где различие, все же. Я просто проверил, и оба используют ту же версию удара (4.3.42). Я не полагаю, что существуют любые настройки в моем .bash* файлы, который изменяет поведение...

(Возможно, можно попробовать загрузочный диск Ubuntu 16.04 для подтверждения себя, что я вижу?)

1
ответ дан 10 May 2016 в 21:10
  • 1
    @N0rbert - Вы, верные Тонкие настройки [только 112] путь? Не возможный с dconf / gsettings? – pomsky 1 November 2017 в 22:18

Другие вопросы по тегам:

Похожие вопросы: