Примушуючи sudo запросити пароль


26

Якщо я виконую наступне:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

Другий виклик sudo не вимагає пароля, оскільки, хоча я знову вийшов із системи, я все ще знаходжуся в певному часовому обмеженні, що означає, що мені більше не потрібно запитувати пароль.

Оскільки я пробую нові приватні особи, щоб переконатися, що вони працюють, це насправді сповільнює мене, поки я чекаю, коли відбудеться час очікування.

Чи є команда, яку я можу виконати, щоб скинути час очікування?

Я не хочу, до речі, змінювати тайм-аут або впливати на інших користувачів!


Якщо ви все ще не можете змусити sudo запросити пароль, вам також може знадобитися прокоментувати користувацькі правила, в яких згадується "NOPASSWD", якщо вони є в /etc/sudoers.d/каталозі. У мене є рядок #includedir /etc/sudoers.dв /etc/sudoersі хоча , що лінія відключена коментарем , але, схоже, #до того includedirне читається як коментар!
baptx

Відповіді:


40

sudo -kВбиває часову позначку часу очікування. Ви навіть можете поставити команду після цього, якsudo -k test_my_privileges.sh

Від man sudo:

-K Параметр -K (впевнене вбивство) подібний -k, за винятком того, що він повністю видаляє часовий штамп користувача і не може використовуватися разом із командою чи іншою опцією. Цей параметр не вимагає пароля.

-k Якщо використовується сам, параметр -k (kill) для sudo визнає недійсним часовий штамп користувача, встановивши час на ньому на Епоху. Наступного разу, коли буде запущено sudo, буде потрібно пароль. Цей параметр не вимагає пароля, і він був доданий, щоб дозволити користувачеві відкликати права доступу до файлу .logout.

Ви також можете його постійно змінити. Від man sudoers:

timetamp_timeout

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


2
Слідкуйте за тим, sudo -k commandщоб не видалити облікові дані. Він просто ігнорує поточні облікові дані та не зберігає їх.
user1346466

Просто до цього додати. Якщо ви хочете змінити час очікування позначки, вам потрібно відредагувати sudoersфайл sudo visudo. Потім ви додаєте рядок Defaults timestamp_timeout = 0в кінці списку інших Defaultsфайлів. Знову вийдіть лінію, щоб повернутися до "нормального" часу очікування.
Флоріс

Моє наступне запитання: unix.stackexchange.com/q/416039/26152
UlfR

5

Відповідь Шона чудова, але є додатковий варіант конфігурації, який може бути корисним у цій ситуації.

Від man sudoers:

tty_tickets

Якщо встановлено, користувачі повинні мати автентифікацію щомісяця. Якщо цей прапор увімкнено, sudo використовуватиме файл, названий для tty, на яку користувач увійшов у каталог часових штампів користувача. Якщо вимкнено, замість цього використовується часова марка каталогу.

Цей прапор увімкнено за замовчуванням.

Від man sudo:

Коли параметр tty_tickets увімкнено в судорах, часова марка має детальну деталізацію, але все ж може переживати сеанс користувача. У системах Linux, де використовується файлова система devpts, система Solaris з файловою системою пристроїв, а також інші системи, які використовують файлову систему devfs, яка монотонно збільшує кількість пристроїв при створенні (наприклад, Mac OS X), sudo здатний щоб визначити, коли файл із часовою маркою на основі tty застарілий, і ігноруватиме його. Адміністратори не повинні покладатися на цю функцію, оскільки вона не є загальнодоступною.

Я думаю, що це порівняно нове. Якщо ваша система підтримує це, якщо ви вийшли з системи, тоді увійдіть, sudo знову запросить ваш пароль. (У мене теж є sudo -Kсценарій виходу з оболонок.)

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