Как изменить таймаут пароля sudo в Linux

Введение
По умолчанию sudo запоминает пароль 15 минут. Это поведение задаётся переменной timestamp_timeout в файле /etc/sudoers. Пока метка времени действительна, повторный ввод пароля не требуется. Таймаут срабатывает после заданного интервала бездействия sudo.
Важно: редактировать /etc/sudoers напрямую не рекомендуется. Неправильный синтаксис может лишить вас доступа к sudo. Используйте visudo или файлы в /etc/sudoers.d.
Основная концепция
- timestamp_timeout — время в минутах, по истечении которых sudo снова запросит пароль.
- Значение 0 — всегда спрашивать пароль.
- Значение -1 — метка времени не истекает в рамках сессии терминала.
- !tty_tickets — отключает отдельные метки по TTY и позволяет иметь общую метку для всех терминалов (удобно для «один ввод за загрузку»).
Короткое определение: метка времени sudo — временная «печать», подтверждающая, что вы уже вводили пароль.
Как безопасно изменить таймаут sudo
- Откройте /etc/sudoers через visudo:
sudo visudovisudo проверит синтаксис перед сохранением. Альтернатива — создать отдельный файл в /etc/sudoers.d и дать ему права 440.
Пример создания отдельного файла:
sudo tee /etc/sudoers.d/90-custom >/dev/null <<'EOF'
Defaults timestamp_timeout=3
EOF
sudo chmod 440 /etc/sudoers.d/90-customЭто безопаснее, чем менять основной файл, и облегчает откат.
Примеры настроек
- Установить таймаут 3 минуты:
Defaults timestamp_timeout=3- Всегда запрашивать пароль:
Defaults timestamp_timeout=0- Запрашивать пароль один раз за терминал (пока терминал открыт):
Defaults timestamp_timeout=-1- Только для конкретного пользователя:
Defaults:alice timestamp_timeout=2- Один запрос пароля за всю систему до перезагрузки:
Defaults !tty_tickets
Defaults timestamp_timeout=-1Команды для немедленного принуждения запроса пароля
- Сбросить текущую метку времени (следующий sudo запросит пароль):
sudo -k- Открыть shell как root (ввод пароля один раз, затем все команды в этой сессии выполняются от root):
sudo bashКогда и почему менять таймаут
- Безопасность: короткий таймаут уменьшает риск несанкционированного использования с открытой сессии.
- Удобство: длинный таймаут или -1 полезны для админов и разработчиков, выполняющих много команд подряд.
- Особые устройства: для одиночных встраиваемых систем можно отключить запрос пароля, но это риск.
Контрпример: на многопользовательской машине отключать пароли небезопасно — лучше настроить конкретных пользователей через Defaults:username или используйте sudoers.d.
Альтернативные подходы и совместимость
- /etc/sudoers.d: рекомендуется для локальных изменений и автоматизации конфигурации.
- Политики PAM и polkit не управляют непосредственно timestamp_timeout, но влияют на другие механизмы аутентификации; для тонкой настройки рассмотрите комбинирование механизмов.
- Сценарии автоматизации: избегайте полного отключения пароля в скриптах — используйте привилегированные службы или systemd unit с правильными правами.
Совместимость: параметры timestamp_timeout и !tty_tickets поддерживаются в стандартной реализации sudo; в редких дистрибутивах с кастомной сборкой поведение может отличаться.
Метод проверки и отката (минимальная методология)
Шаги для безопасного изменения:
- Создайте резервную копию текущего файла:
sudo cp /etc/sudoers /etc/sudoers.bak- Внесите изменение через visudo или добавьте файл в /etc/sudoers.d.
- Протестируйте в новой консоли: выполните sudo ls, затем несколько команд sudo без ввода пароля, дождитесь истечения времени.
- Если доступ нарушён, войдите как root через «su» или используйте консоль восстановления и восстановите /etc/sudoers.bak.
Критерии приёмки
- После изменения sudo запрашивает или не запрашивает пароль в соответствии с заданной политикой.
- Файл /etc/sudoers прошёл проверку синтаксиса (visudo не выдал ошибок).
- Права на файлы в /etc/sudoers.d выставлены 440.
Рекомендации по безопасности
- Не ставьте timestamp_timeout в отрицательное значение, отличное от -1, без понимания последствий.
- Не отключайте запросы пароля на серверах с несколькими пользователями.
- Используйте отдельные правила для пользователей или групп, чтобы применять разные политики.
- Логируйте использование sudo и периодически проверяйте /var/log/auth.log или системный журнал.
Важно: полное удаление запроса пароля — удобство, но повышенный риск. Делайте это только на изолированных, доверенных машинах.
Рольовые чеклисты
Системный администратор:
- Резервная копия /etc/sudoers
- Использование visudo
- Отдельные файлы в /etc/sudoers.d
- Права 440 на файлы sudoers
- Тестирование на рабочей и тестовой средах
Разработчик локальной машины:
- Рассмотрите timestamp_timeout=-1 для удобства
- Ограничьте доступ к физическому устройству и учетной записи
- Используйте sudo -k перед оставлением ноутбука
Инженер по безопасности:
- Оцените риск для каждого хоста
- Применяйте минимальные привилегии
- Настройте аудит использования sudo
Примеры тест-кейсов
Сценарий: таймаут 3 минуты
- Выполнить sudo команду, подтвердить пароль.
- Через 2 минуты выполнить sudo — пароль не запрашивается.
- Через 4 минуты выполнить sudo — пароль запрашивается.
Сценарий: timestamp_timeout=0
- Каждая sudo команда запрашивает пароль.
Сценарий: !tty_tickets + timestamp_timeout=-1
- В одном терминале ввести пароль.
- Открыть второй терминал — выполнять sudo без запроса.
- Перезагрузить систему — потребуется ввод пароля заново.
Мини‑чеат‑шит (короткие команды)
# Редактировать безопасно
sudo visudo
# Пример для 5 минут (через /etc/sudoers.d)
sudo tee /etc/sudoers.d/50-timeout >/dev/null <<'EOF'
Defaults timestamp_timeout=5
EOF
sudo chmod 440 /etc/sudoers.d/50-timeout
# Сбросить текущую метку времени (следующий sudo запросит пароль)
sudo -k
# Открыть root shell (ввод один раз)
sudo bashДиаграмма принятия решения
flowchart TD
A[Нужен пароль чаще или реже?] --> B{Требуется безопасность или удобство}
B -->|Безопасность| C[Установить timestamp_timeout=0 или малое значение]
B -->|Удобство| D[Использовать -1 для сессии или увеличить минуты]
D --> E{Одна метка для всей машины?}
E -->|Да| F[Добавить !tty_tickets и timestamp_timeout=-1]
E -->|Нет| G[Оставить поведение по умолчанию или настроить per-user]Сводка
- По умолчанию sudo помнит пароль 15 минут (timestamp_timeout).
- Меняйте настройку через visudo или /etc/sudoers.d.
- Значения: 0 — всегда спрашивать; -1 — раз за сессию; !tty_tickets + -1 — раз до перезагрузки.
- Тестируйте и держите резервную копию sudoers для отката.
1‑строчный глоссарий
- sudo: утилита для выполнения команд с привилегиями другого пользователя (обычно root).
- visudo: редактор, выполняющий проверку синтаксиса для /etc/sudoers.
- timestamp: временная метка, подтверждающая ввод пароля для sudo.
Конец статьи.
Похожие материалы
Как стать аналитиком маркетинговых исследований
Как управлять фильтрами Gmail — создание и примеры
Что Reedsy научит о книгоиздании
Поиск твитов пользователя в Twitter (iOS)
Исправить Диспетчер задач в Windows 11/10