Заставить sudo запрашивать пароль


26

Если я сделаю следующее:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

Второй вызов sudo не запрашивает пароль, потому что, несмотря на то, что я вышел из системы, у меня все еще есть ограничение по времени, что означает, что мне не нужно снова запрашивать пароль.

Поскольку я пробую некоторые новые привилегии, чтобы убедиться, что они работают, это действительно замедляет меня, пока я жду, когда истечет время ожидания.

Можно ли выполнить команду для сброса времени ожидания?

Кстати, я не хочу менять время ожидания или влиять на других пользователей!


Если вы все еще не можете заставить sudo запрашивать пароль, вам также может понадобиться прокомментировать пользовательские правила, в которых упоминается «NOPASSWD», если они присутствуют в /etc/sudoers.d/каталоге. У меня есть строка #includedir /etc/sudoers.dв /etc/sudoersи хотя , что линия отключена комментарием , но, похоже, #до того includedirне читается как комментарий!
baptx

Ответы:


40

sudo -kУбьет отметку времени ожидания. Вы можете даже поставить команду потом, какsudo -k test_my_privileges.sh

От man sudo:

-K Параметр -K (верное уничтожение) похож на -k, за исключением того, что он полностью удаляет отметку времени пользователя и не может использоваться вместе с командой или другим параметром. Эта опция не требует пароля.

-k Когда используется само по себе, опция -k (kill) для sudo делает недействительной метку времени пользователя, устанавливая для нее время в эпоху. При следующем запуске sudo потребуется пароль. Эта опция не требует пароля и была добавлена, чтобы позволить пользователю отзывать разрешения sudo из файла .logout.

Вы также можете изменить его навсегда. От man sudoers:

timestamp_timeout

Количество минут, которое может пройти, прежде чем sudo снова запросит пароль. Тайм-аут может включать дробный компонент, если мелкая детализация недостаточна, например, 2.5. Значение по умолчанию - 5. Установите 0, чтобы всегда запрашивать пароль. Если установлено значение меньше 0, отметка времени пользователя никогда не истечет. Это может использоваться, чтобы позволить пользователям создавать или удалять свои собственные временные метки через sudo -v и sudo -k соответственно.


2
Будьте осторожны sudo -k command, не удалит учетные данные. Он просто игнорирует текущие учетные данные и не сохраняет их.
user1346466

Просто чтобы добавить к этому. Если вы хотите изменить время ожидания метки, вам нужно отредактировать sudoersфайл с помощью sudo visudo. Затем вы добавляете строку Defaults timestamp_timeout = 0в конец списка других Defaultsв файле. Снова выведите линию, чтобы вернуться к «обычному» таймауту.
Флорис

Мой дополнительный вопрос: unix.stackexchange.com/q/416039/26152
UlfR

5

Ответ Шона великолепен, но есть дополнительная опция конфигурации, которая может быть полезна в этой ситуации.

От man sudoers:

tty_tickets

Если установлено, пользователи должны проходить аутентификацию отдельно. Если этот флаг включен, sudo будет использовать файл с именем tty, в которое вошел пользователь, в каталоге отметок времени пользователя. Если отключено, вместо этого используется отметка времени каталога.

Этот флаг включен по умолчанию.

От man sudo:

Когда опция tty_tickets включена в sudoers, отметка времени имеет значительную степень детализации, но все же может пережить сеанс пользователя. В системах Linux, где используется файловая система devpts, в системах Solaris с файловой системой устройств, а также в других системах, использующих файловую систему devfs, которые монотонно увеличивают число inode-устройств при их создании (например, Mac OS X), sudo может определить, является ли файл отметки времени на основе tty устаревшим, и будет игнорировать его. Администраторы не должны полагаться на эту функцию, так как она не всегда доступна.

Я думаю, что это относительно новый. Если ваша система поддерживает это, если вы выйдете из системы, то войдите в систему, sudo запросит ваш пароль еще раз. (У sudo -Kменя тоже есть сценарий выхода из оболочки.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.