разрешение sudo не истекает во время обновления apt-get

9

Подумайте об этом: вы набираете $sudo apt-get upgradeи получаете список вещей, которые необходимо обновить с подтверждением «Y \ n». прежде чем вы сможете прочитать список и набрать «Y» или «n», зазвонит телефон, или ваш начальник входит, или вы делаете что-то еще. Вы возвращаетесь через час и нажимаете Y, чтобы установить обновления.

Вам больше не предлагается пароль. по-видимому, любые другие команды sudo в оболочке будут выполняться, потому что таймер был в ожидании ввода пользователя. Или пользователь может прервать процесс обновления и сделать что-то подобное sudo -iи просто остаться в root на неопределенное время.

Я использую Ubuntu Mate 14.04

это заслуживающее внимания исключение безопасности? Должен ли я попытаться сообщить об этом в каком-то месте? Если так, то где?

j0h
источник
5
Что вы подразумеваете под «предположительно»? Вы пробовали это или нет?
luckyrumo
3
Я попробовал это только сейчас, даже если Defaults passwd_timeout=3 в моем файле sudoers после запуска sudo apt-get upgradeпароль не спрашивается. Это нехорошо
Сергей Колодяжный
У меня нет проблемы со стандартными настройками в Ubuntu
15.04
1
@TobiasKienzler Нету. Я никоим образом не изменил свой файл sudoers, кроме добавления этой части passwd_timeout. Чеч мой ответ. Проблема была с тайм-аутом метки времени. Это разные варианты
Сергей Колодяжный
1
@ Сергей, я вижу, есть два тайм-аута. Как удобно сбивать с толку: / Спасибо :)
Тобиас Кинцлер

Ответы:

22

Вам не предлагается пароль, потому что sudoон выполнил свою работу и запущен apt-getс правами root. Пока он находится в приглашении, apt-getпроцесс все еще выполняется, и, поскольку он все еще выполняется от имени пользователя root, вводить пароль снова не нужно.

Другими словами, до тех пор , пока sudo«процесс редактор работает, вы не будет предложено ввести пароль еще раз для этого процесса; sudoне прерывает процесс каждые 15 минут (время ожидания по умолчанию) и запрашивает ваш пароль.

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

saiarcot895
источник
5
... или действительно в том же терминале, после того, как команда sudo была выполнена
steeldriver
3

sudotimestamp_timeoutПеременная по умолчанию составляет 15 минут. Это означает, что если вы нажмете n в sudo apt-get upgradeтечение 15 минут, вы можете ожидать входа в корневую оболочку с помощью sudo -i. Именно так и произошло. Однако, если вы установите это /etc/sudoersкак Default timestamp_timeout 0, вам будет предложено это каждый раз. Лично я установил его на 3. Если у вашего sudo нет времени ожидания даже через 15 минут, значит, что-то серьезно не так с вашим sudoдвоичным файлом.

Это не дыра в безопасности, а скорее «удобная функция» для пользователей sudo. Тем не менее, я могу согласиться с тем, что для более строгой безопасности timestamp_timeoutнеобходимо установить гораздо более короткое время, чем 15 минут.

Примечание . passwd_timeoutОпция, о которой я упоминал в своем комментарии, фактически блокирует запрос пароля, если вы не вводите пароль в течение x минут. Это один из приятных моментов, когда вы понимаете, что вам следует читать man sudoersнамного внимательнее.

Сергей Колодяжный
источник
2
обратите внимание, что вы никогда не должны редактировать /etc/sudoersнапрямую, visudoвместо этого используйте проверку, которая проверяет синтаксические ошибки перед заменой sudoersна неисправный файл, который в противном случае мог бы полностью заблокировать вас от корневого доступа
Тобиас Кинцлер,
0

Я бы посоветовал вам напечатать sudo apt-get upgrade && exitэто выйдет из терминала после завершения обновления. Когда обновление будет отменено, терминал не закроется, но я думаю, что это не так.

Мартон
источник