Как часто запрашивается пароль для команд sudo? Где я могу это настроить?


24

Я выполняю довольно много sudoкоманд.

Я заметил, что если я выполню одно, а затем другое в течение нескольких минут, во второй раз я не получу сообщение:

[sudo] пароль для my_username:

но я понимаю, когда между выполнением двух команд остается больше времени.

Какой период времени, когда сообщение не появляется? Как мы можем проверить это / обновить?


1
sudo visudo, то строка% sudo должна быть% sudo ALL = (ALL: ALL) NOPASSWD: ALL, он не будет спрашивать пароль при вводе sudo any-stuff
Qasim

3
Это (NOPASSWD: ALL) очень опасное предложение. Это сделает вашу установку незащищенной.
Шри

Ответы:


31

Время ожидания по умолчанию sudoсоставляет 15 минут; то есть sudoзапомнит ваш пароль на 15 минут по умолчанию.

Вы можете изменить это время ожидания по умолчанию, добавив строку в файл /etc/sudoers. Однако вы не изменяете файл напрямую, а вместо этого используете команду sudo visudo.

Итак, введите sudo visudoв терминале. Это откроет (на самом деле, временный) файл для нас, чтобы редактировать, используя ваш предпочитаемый редактор.

Примечание: если вы используете visudoв первый раз, вас спросят, какой редактор вы бы хотели использовать, поэтому выберите ваш редактор. Там нет "лучшего" редактора, но я предпочитаю nano. Если вы уже использовали visudoи выбрали редактор ранее, но хотите использовать другой редактор в настоящее время, вы можете sudo EDITOR=vi visudoиспользовать его viили изменить nanoна использование nano. Если вы хотите навсегда изменить предпочитаемый вами редактор, сделайте sudo update-alternatives --config editor.

Посмотрите на эту строку:

Defaults    env_reset

И добавьте (с запятой) в конце, где X - время, которое вы хотите установить в минутах.timestamp_timeout=X

Таким образом, ваша строка должна выглядеть следующим образом:

Defaults    env_reset,timestamp_timeout=5

Если вы укажете 0, вам всегда будет предложено ввести пароль. Если вы укажете отрицательное значение, время ожидания никогда не истечет.

После этого сохраните и выйдите.

Источник: RootSudoTimeout


Спасибо, @Alaa, это хороший и полезный ответ. Как примечание, Ctrl + xчасть не всегда совпадает, например, с редактором vi(в моем случае).
Федорки

Кстати, я сделал большую ошибку, добавив новую строку только с Default timestamp-0вместо env_reset. Это сломало мой файл sudoers. Пришлось использовать askubuntu.com/a/73872/143251 чтобы решить это!
Федорки

@fedorqui: Именно поэтому вы должны использовать visudo (как рекомендует Alaa) вместо непосредственного редактирования файла. Первый будет синтаксически проверять файл для вас, не давая вам заблокировать себя от sudo.
Plutor

Да, да, именно это я и сделал @Plutor. Но viредактор, который я определил для visudo. Проблема в том, что я сохранил файл, хотя при его закрытии я получил предупреждение. Моя вина, очевидно.
Федорки

1
@fedorqui, да, я вроде как хотел удалить эту часть, потому что любой мог использовать другой редактор. Я отредактировал свой ответ, чтобы не быть конкретным редактором.
Алаа Али

3

Смотрите этот пост здесь: http://ubuntuforums.org/showthread.php?p=116697#post116697

Отредактируйте /etc/sudoersфайл, используйте sudo visudoкоманду для безопасности. Добавьте timestamp_timeout=0к строке, начинающей Defaultsкаждый раз спрашивать, или положительный X для X минутной задержки.


1
Я должен зарегистрироваться на форуме, чтобы увидеть это. В то же время, не могли бы вы указать, какой файл я должен редактировать со timestamp_timeout=0строкой?
Федорки

ОК, фиксированный ответ.
Туминоид

Это добилось цели! Я приму другой ответ, так как он имеет более полное объяснение и включает в себя env_resetссылку, что важно. В любом случае, этот ваш ответ тоже был очень полезен, так что спасибо!
Федорки

0

Не уверен, истекает ли это или нет, но вы можете попробовать

sudo su

Он попросит вас ввести пароль, и после этого все команды будут выполнены как sudo.


1
Да, @ Rat2000, но я хочу продолжать использовать моего пользователя, а не root. Я думаю, что это безопаснее. В любом случае, спасибо за совет.
Федорки

3
sudo su делает тебя корнем. Ваше приглашение должно быть root @ yourpc. Имейте в виду, что у root есть собственный .bashrc, поэтому ваши псевдонимы не будут работать. Помните также, что root может нанести серьезный ущерб системе, поэтому будьте осторожны!
Призрак
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.