Можно ли ввести пароль для sudo только один раз и настроить его так, чтобы он не требовался для пароля на других терминалах?

33

Я ввожу свою первую sudoкоманду. Я ввожу свой пароль. Какое-то время мне не придется вводить свой пароль для последующих команд sudo.

Теперь вопрос. Я тот, кто открывает много терминалов. Было бы очень удобно, если бы мне не приходилось вводить пароли при использовании sudoв терминалах, которые я открываю после своего первого sudo, в течение короткого времени, когда мне не нужно вводить пароль для sudo в терминале, с которого я использовал sudo для первый раз. (Извините за длинное предложение!)

Является ли это возможным? Если нет, то почему? Если да, то как?

daltonfury42
источник
4
Задумывались ли вы, что таким образом вы открываете дыру в безопасности, которую этот механизм существует для закрытия? Причина, по которой вы должны ввести свой пароль с помощью sudo, заключается в том, чтобы защититься от того обстоятельства, что злоумышленник каким-то образом получил доступ к сеансу входа в систему от вашего имени. Если вы отключите его, и кому-то удастся перехватить один из сеансов вашего терминала (все они находятся на одной консоли?) Или каким-либо другим способом получит доступ к сеансу входа в систему от вашего имени, не зная вашего пароля, он сможет запустить любой команда от имени root. Не очень вероятный сценарий, но то, что вы должны рассмотреть.
Пепейн Шмитц

Ответы:

52

Конечно да. Запустите sudo visudoи добавьте эту строку в ваш sudoersфайл:

Defaults        !tty_tickets

Как объяснено в man sudoers:

 tty_tickets       If set, users must authenticate on a per-tty basis.
                   With this flag enabled, sudo will use a separate record
                   in the time stamp file for each tty.  If disabled, a
                   single record is used for all login sessions.  This
                   flag is on by default.

Отключив tty_tickets(это то, что !означает), вы разрешите одной и той же аутентификации быть доступной нескольким сеансам.

terdon
источник
1
Единственное, что я делаю здесь иначе, когда советую пользователям, - это вместо этого использовать файл sudoers.d. Таким образом, если они каким-то образом очень легко восстанавливаются, просто удалите этот файл. Ex. sudo visudo -f /etc/sudoers.d/01_file
Дуг
Что происходит, когда истекает время ожидания sudo? или запустить что-то вроде sudo -k?
Maythux
@Maythux, тебе нужно ввести его снова. Это просто делает единую идентификацию работающей для всех сеансов оболочки. Ничего больше.
тердон
@ user3073656 ах, круто, это имеет больше смысла :). Да, пожалуйста, я удалю мою.
тердон
Я должен отметить, что, если я использую этот метод, срок действия пароля истечет только через 15 минут, даже если я перезагружусь, что создает угрозу безопасности. Так, может быть, добавить sudo -kв /etc/rc6.d?
daltonfury42