Работая с командой sudo для выполнения административных задач в Linux, вы могли заметить, что даже если вы указали пароль sudo некоторое время назад, через некоторое время вас попросят указать его снова. Это происходит из-за ограничения времени сеанса sudo, которое по умолчанию установлено на 15 минут. Если вы введете команду sudo по истечении этих 15 минут даже в том же сеансе терминала, вас попросят ввести пароль снова. Как администратор Linux, вы можете захотеть удлинить или сократить время сессии sudo по сравнению с пятнадцатью минутами по умолчанию.
В этом руководстве описано, как можно внести очень простые изменения в файл /etc/sudoers, чтобы задать ограничение по времени для сеанса sudo.
Укажите время X для сеанса sudo
В этом примере мы изменим временной лимит сеанса sudo на 10 минут. Пожалуйста, выполните следующие шаги, чтобы изменить временной лимит для вашей сессии sudo на столько, сколько вы хотите:
Откройте терминал Ubuntu, нажав Ctrl+Alt+T или через Ubuntu Dash.
Поскольку вам нужно отредактировать файл sudoers, расположенный в папке etc, введите следующую команду:
1 | sudo visudo |
Вам будет предложено ввести пароль для пользователя sudo.
Вы зададитесь вопросом, почему мы не открываем файл sudoers, как открываем другие текстовые файлы. Ответ заключается в том, что в отличие от других текстовых редакторов, visudo проверяет синтаксис текста, который вы вводите в файл. Это убережет вас от внесения ошибочных изменений, которые могут привести к серьезным последствиям. Например, внесение ошибочных изменений в файл sudoers может стоить вам невозможности войти в систему как привилегированный пользователь для выполнения любых повышенных функций.
Введите свой пароль и введите. Файл sudoers откроется в редакторе Nano, так как он является текстовым редактором по умолчанию в Ubuntu и Debian.
На изображении выше вы можете увидеть следующую строку:
1 | Defaults env_reset |
Эта строка отвечает за ограничение времени вашей сессии sudo. Вам нужно внести следующие изменения в эту строку:
1 | Defaults env_reset, timestamp_timeout=x |
Здесь x - это время в минутах, которое вы можете указать для того, чтобы установить необходимый вам временной лимит. Пожалуйста, обратите внимание на следующие моменты при установке этого таймаута:
Если вы укажете тайм-аут равным 0, ваша сессия продлится всего 0 минут. Это означает, что вам будет предложено ввести пароли для каждой из ваших команд sudo.
Если вы зададите это время меньше нуля (в отрицательном значении), команда sudo не будет работать должным образом.
В этом примере я сокращаю время по умолчанию 15 минут до 10 минут с помощью следующих изменений в файле sudoers:
Нажмите Ctrl+X, чтобы выйти из файла после внесения необходимых изменений. Вас спросят, хотите ли вы сохранить измененный файл. Нажмите Y для сохранения изменений.
Вам также будет предложено указать имя файла для сохранения. Пожалуйста, нажмите Enter, так как мы не хотим изменять имя файла здесь. Ваши изменения будут сохранены, и ваша сессия sudo будет длиться до указанных минут всякий раз, когда вы будете использовать команду sudo.
Установить сеанс Sudo до закрытия терминала
С помощью простой команды вы можете позволить вашей сессии sudo длиться до закрытия терминала, независимо от того, как долго терминал остается открытым. После выполнения этой команды вас не попросят ввести пароль для любой команды, требующей разрешения sudo:
1 | sudo -s |
Завершение сеанса sudo
После того, как вы ввели пароль для sudo, вы можете завершить сеанс sudo даже до истечения срока, указанного в файле sudoers, с помощью следующей простой команды:
1 | sudo -k |
Обратите внимание, что эта команда не завершит сессию, если вы использовали "sudo -s" во время терминальной сессии.
Итак, вот как вы можете сократить или увеличить продолжительность сеанса sudo, внеся однострочное изменение в файл /etc/sudoers. Вы также можете использовать другие команды, упомянутые в этой статье, чтобы завершить сеанс sudo или сделать его продолжительным, пока не закончится сеанс терминала.