рекомендации

понедельник, 14 февраля 2022 г.

Как задать время сессии Sudo

При работе с командой sudo для выполнения административных задач в Linux вы, возможно, заметили, что даже если вы предоставили пароль sudo некоторое время назад, через некоторое время вас попросят предоставить его снова. Это происходит из-за ограничения времени сеанса sudo, которое по умолчанию равно 15 минут. Если вы введете команду sudo через 15 минут даже в том же сеансе терминала, вас попросят ввести пароль еще раз. Как администратор Linux, вы, возможно, захотите увеличить или сократить ограничение времени для сеанса sudo по сравнению с пятнадцатью минутами по умолчанию.

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

Задаем время X для сеанса Sudo

В этом примере мы изменим ограничение времени нашего сеанса sudo на 10 минут:

Откройте терминал Ubuntu, нажав Ctrl + Alt + T или через Ubuntu Dash.

Так как вам нужно отредактировать файл sudoers, расположенный в папке etc, введите следующую команду:

$ sudo visudo

Вам будет предложено ввести пароль пользователя.

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

Введите свой пароль и нажмите Enter. Файл sudoers откроется в редакторе Nano, так как это текстовый редактор по умолчанию для Ubuntu 18.04.


На скриншоте выше вы можете увидеть следующую строку:

Defaults env_reset
Эта строка отвечает за ограничение времени вашей сессии sudo. Вам необходимо внести следующие изменения в эту строку:

Defaults env_reset, timestamp_timeout=x
Здесь x - это время в минутах, которое вы можете указать, чтобы установить требуемый лимит времени. Обратите внимание на следующие моменты при установке этого тайм-аута:

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

Если вы установите это время меньше нуля (отрицательное), команда sudo не будет работать должным образом.

В этом примере я сокращаю время по умолчанию с 15 минут до 10 минут с помощью следующих изменений в моем файле sudoers:


Нажмите Ctrl + X, чтобы выйти из файла после внесения необходимых изменений. Вам будет задан вопрос, хотите ли вы сохранить измененный файл. Нажмите Y, чтобы сохранить изменения.


Вам также будет предложено указать имя файла для сохранения. Пожалуйста, нажмите Enter, так как мы не хотим менять имя файла.


Ваши изменения будут сохранены, и ваш сеанс sudo будет длиться указанное вами время.

Как задать время действия сеанса sudo до закрытия терминала

С помощью простой команды вы можете позволить вашему сеансу sudo длиться до тех пор, пока вы не закроете терминал, независимо от того, как долго терминал остается открытым. Вам не нужно будет вводить пароль для любой команды, для которой требуется разрешение sudo после выполнения этой команды:

$ sudo -s
Завершение сеанса sudo

После того, как вы ввели пароль для sudo, вы можете прекратить сеанс sudo даже до истечения срока, указанного в файле sudoers, с помощью следующей простой команды:

$ sudo -k
Обратите внимание, что эта команда не завершит сеанс, если вы использовали «sudo -s» во время терминального сеанса.

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

1 комментарий: