Как отменить оставшееся время ожидания sudo?

38

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

sudo -k убивает его для текущего сеанса терминала, но если процесс в данный момент выполняется в этом сеансе и поэтому не может работать sudo -k, есть ли способ отменить его из другого сеанса терминала?

И есть ли способ отменить все примененное в настоящее время sudoвремя (для всех сеансов терминала, всех запущенных приложений и т. Д.?

Хотя, если подумать, работающий графический интерфейс может просто нуждаться в закрытии, но я только что проверил, что Alt+ F2сохраняет gksu активным для последующих вызовов.

Peter.O
источник

Ответы:

38

Не уверен, что вы хотите убить тайм-аут sudo, чтобы он не истек или истек сразу, но если вы хотите удалить оставшуюся метку времени, вы можете использовать sudo -k

В противном случае, если вы пытаетесь отменить тайм-аут, чтобы sudo не истекло, я не думаю, что это возможно сделать в текущем сеансе. Единственный способ я знаю, было бы изменить timestamp_timeoutв sudoersфайле и перезапустить сеанс.

wajiw
источник
упс .. я немного поторопился с подробностями: я просто добавил немного больше к своему вопросу ... насчет "-k" ... и, да, я имею в виду разовую ситуацию, хотя сейчас это приносит до вопроса общесистемного "единовременного". ... Спасибо (+1) за ответ, который идеально подошел для моего оригинального вопроса (не хватает деталей) ..
Peter.O
1
Я не совсем понимаю, как -Kпрактически отличается от -k(когда -k используется itseld) .., но -kимеет двойное использование: 1. само по себе (делает недействительной метку времени) ... 2. при использовании с командой, это запрашивает пароль независимо от того, истек ли предыдущий тайм-аут sudo ..... И, кстати: sudo -k работает в Alt + F2, чтобы убить временную метку предыдущего вызова sudo / gksu.
Peter.O
Да, я понятия не имею, когда бы я использовал один над другим.
Wajiw
Помимо проблемы «убить все существующие временные метки» .... Без изменения базовых настроек sudoers я могу увидеть единственный способ запустить «гарантированный» одноразовый sudo - это sudo -k; sudo -k appname.... хотя и sudo -k appnameзаставляет пользователя введите пароль, он оставляет прежнюю временную метку без изменений ... (я упоминаю ее просто как "безумие на мельницу") ... и, возможно, самый простой способ "убить" все существующие временные метки, это просто избежать проблемы полностью и нажмите Ctrl + Alt + L, чтобы
заблокировать
хахаха, если у тебя есть возможность, я бы
выбрал
8

Просто по одному из ваших пунктов:

но если процесс в данный момент выполняется в этом сеансе и поэтому не может запустить sudo -k

Это относится к командной строке: если вы хотите что-то сделать во время работы какого-либо другого процесса, вы можете нажать Ctrl+, Zчтобы приостановить процесс; Затем вы снова получаете доступ к текущему терминалу и делаете все, что захотите. Когда вы закончите, вы можете набрать, jobsчтобы получить список процессов с номером рядом с ними. Напечатайте fg 1(например - и просто, fgесли есть только одно задание), чтобы перезапустить процесс, подняв его на передний план. Точно так же, bgчтобы сделать то же самое, но оставить процесс в фоновом режиме.

Пример сеанса

$ sudo apt-get install hello
<CTRL+Z>
[1]+  Stopped    sudo apt-get install hello
$ sudo -k
$ jobs
[1]+  Stopped    sudo apt-get install hello
$ fg 1
Loading database...
....
Стефано Палаццо
источник
1
Стефано: Спасибо ... это так хорошо ... Linux продолжает говорить мне: «Да, конечно, я могу это сделать» :) ... и, если подумать, я наполовину знал об этом Ctrl + Z, но половины не достаточно!) ... Теперь, когда я обнаружил "реальную" ситуацию, когда это не просто текст на экране, я уверен, что никогда не забуду это ... должен идти .. У меня есть Cntrl + Z-ing, чтобы сделать ...
Peter.O
2

Я нашел решение. так как мой поиск не показал ничего похожего, и это частый вопрос: sudo хранит где-то в файловой системе (например, в / var / run / sudo), один каталог на имя пользователя, несколько файлов, которые работают как отметка времени , один файл для каждого терминала. удалите эти файлы, и ваша система снова будет в безопасности. просто имейте в виду, что эти файлы видны только пользователю root (в противном случае злоумышленник может прочитать отметку времени и установить время обратно на точку, где они все еще были действительны - предоставление root-ls кому-либо опасно). поэтому в моем / etc / pm / sleep / и, возможно, также для заставки, которую я запускаю:

rm -f /var/db/sudo/*/*

как корень конечно ...

piotr5
источник