3

Я на Debian Ленни. К сожалению, заводской пакет sudo не включает опцию -n, поставляемую с версией sudo 1.7. Мне бы очень хотелось, чтобы у меня был способ указать: «Если sudo запрашивает пароль, я предпочитаю немедленно потерпеть неудачу, а не зависать в приглашении». Будет ли эта альтернатива работать?

echo "" | sudo -S -u lalala command 

2 ответа2

2

Ваша команда также будет читать со стандартного ввода (как Крис Ачесон). Вам лучше перенаправить стандартный ввод обратно с терминала.

echo | sudo -S -u lalala sh -c 'command </dev/tty'
2

Это будет работать только с определенными командами. Когда ему нужен пароль, sudo не удастся, как и ожидалось, несколько уродливо. Однако, если этого не произойдет, символ новой строки будет передан команде, которую вы запускаете с помощью sudo.

кот отлично работает:

cacheson@segfault:~$ echo "" | sudo -S -u cacheson cat file.txt 
text file

vim не делает:

cacheson@segfault:~$ echo "" | sudo -S -u cacheson vim file.txt 
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...

Vim: Finished.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .