Скільки часу зберігається пароль для виконання команди з кешованим файлом sudo?


23

Якщо я запускаю команду, для якої потрібні привілеї root sudo, мені буде запропоновано ввести пароль поточного користувача. Після цього на деякий час, якщо я виконувати ті ж команди команд sudo, мене більше не запитають пароль. Тож я здогадуюсь, що пароль зберігається в кешованому режимі десь до його закінчення. Як довго цей термін придатності? Чи можливо це налаштувати?


1
Тільки фій, ви можете запропонувати продовжити термін дії, використовуючи sudo -v. Це відмінно підходить для того, щоб розміщувати у верхній частині сценарії, які виконують команди sudo, щоб ви на початку запитали пароль.
valbaca

Зауважте, sudo насправді не кешує пароль. Судо насправді взагалі не потребує пароля, щоб виконувати свою роботу, він лише вимагає, щоб перевірити, чи дозволено користувачеві виконати дану команду. В основному, він зберігає дані користувачів на певний період (як спеціальну "мітку часу", див. Головну відповідь), протягом якої він не вимагає від користувача повторної перевірки. Сам пароль не кешований (зберігається), на відміну від веб-браузера або ключів шифрування.
Антоній

Відповіді:


20

man 5 sudoersповідомляє нам, що є варіант timestamp_timeout:

timestamp_timeout

Кількість хвилин, яка може пройти до того, як судо знову попросить пройти паспорт. Час очікування може включати дробовий компонент, якщо хвилинна деталізація недостатня, наприклад 2,5. За замовчуванням - 5. Установіть це значення 0, щоб завжди запросити пароль. Якщо встановлено значення менше 0, штамп часу користувача ніколи не закінчується. Це можна використовувати, щоб дозволити користувачам створювати або видаляти свої власні часові позначки через "sudo -v" та "sudo -k" відповідно.

Так, так, його можна налаштувати через /etc/sudoers, і за замовчуванням він закінчується через 5 хвилин.


4
і ви знаєте, використовуйте visudoдля редагування sudoконфігурації, НІКОЛИ не редагуйте /etc/sudoersбезпосередньо.
Карлос Кампдеррос

2
@ CarlosCampderrós: ​​Це правда. І (де можливо) завжди тримайте іншу кореневу оболонку відкритою, щоб бути в безпечній частині. :)
Ульріх Шварц

7

Це залежить від вашої конфігурації. За замовчуванням у більшості дистрибутивів (і в джерелі) - 5 хвилин, але ви можете змінити його за допомогою timestamp_timeoutпараметра в /etc/sudoers. Від man sudoers:

Кількість хвилин, яка може пройти до того, як судо знову попросить пройти паспорт. Час очікування може включати дробовий компонент, якщо хвилинна деталізація недостатня, наприклад 2,5. За замовчуванням - 5. Установіть це значення 0, щоб завжди запросити пароль. Якщо встановлено значення менше 0, штамп часу користувача ніколи не закінчується. Це можна використовувати, щоб дозволити користувачам створювати або видаляти свої власні часові позначки через "sudo -v" та "sudo -k" відповідно.

Наприклад, щоб встановити час очікування користувачеві chrisна 20 хвилин, додайте наступне до /etc/sudoersабо у файл у /etc/sudoers.d(зверніть увагу: і порядок правил у цих файлах, і порядок цих файлів мають значення, переконайтеся, що його ненавмисно не перекрито правило, яке виконується пізніше):

Defaults:chris timestamp_timeout=20
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.