Як збільшити тайм-аут запам'ятовування пароля sudo?


61

Я вже знаю, що мені потрібно налаштувати / etc / sudoers файл, але я хотів би побачити повну інформацію, а також рішення, яке не вимагає від мене viредактора.

Оновлення: ніколи, ніколи не намагайтеся редагувати файл чимось іншим, ніж visudo.


1
Ви можете встановити EDITOR env var, використовуючи також visudo :: sudo env EDITOR = nano visudo
Good Person

Відповіді:


86

Виконати sudo visudoта додати цей рядок:

Defaults    timestamp_timeout=-1

Див man 5 sudoers. -1призводить до того, що пароль ніколи не вичерпується. Ви можете за лічені хвилини змінити номер на що завгодно.

Сторінка "man" sudoзазначає, що sudo -v"продовжується час очікування судо ще на 5 хвилин".

Запуск «sudo visudo» замість редагування файлу безпосередньо призводить до того, що система перевірить файл sudoers до того, як він вчинить зміни. Наприклад, якщо ви десь залишите бродячого персонажа, коли ви зберігаєте та виходите, він скаже, "у файлі sudoers є помилка, що б ви хотіли зробити?" ... отже, ви даєте можливість зайти назад і редагувати. Це насправді трапилось зі мною 10 хвилин тому.


20
Так, але visudoвиконуються деякі основні перевірки надійності файлу sudoers перед збереженням. Якщо ви зіпсуєте файл, використовуючи viбезпосередньо, ви можете позбавити себе від використання судо, що дуже важко скасувати зміни.
nohillside

4
Привілеї подібні до інших систем, тому Apple нічого спільного не має. visudoобертається навколо системного редактора за замовчуванням (я б припустив, що користувач root користувач за замовчуванням, якщо корінь змінив за замовчуванням), тому не має нічого спільного з назвою vi бар. У моїй системі (не яблуко BTW) я отримую нано. Спробуйте export EDITOR='/bin/nano'або будь-який редактор, який вам подобається, тоді використовуйте візуально.
Кріс

4
Гм ... Ви не можете використовувати root, щоб виправити це, тому що ви не можете отримати корінь, тому що ви просто заповнили свій файл sudo ... У цьому вся суть.
daviewales

1
У професійній ролі ви можете мати доступ до sudo, але не мати кореневого пароля. Ваш сервер може знаходитись в центрі обробки даних по всій країні, що ускладнює доступ до одного режиму користувача. Але, якби вас сказали професіоналами, вам, ймовірно, не надавали б таких попереджень. Справа в тому, що ви повинні вчитися у професіоналів. Не шукайте способів уникнути формування хороших звичок. Тоді ми маємо почути ваші несамовиті вигуки на Stack Exchange та IRC.
Бруно Броноський

1
(Можливо, це очевидно для всіх, але додавання): timestamp_timeout знаходиться за лічені хвилини, може включати дробовий компонент.
користувач

3

Будьте дуже обережні щодо зміни /etc/sudoersбезпосередньо!

Наприклад, я спробував вищезгадану пропозицію безпосередньо:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

який зіпсував мій /etc/sudoersфайл (у CentOS Virtualbox VM). Повинно було:

sudo sh -c 'echo -e "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

На щастя, у мене був доступ до кореневого акаунта, увійшов як root, використав visudoта усунув проблему! Отже, я погоджуюсь використовувати / замінити вищезазначені коментарі visudo.


1

Всю інформацію для судерів можна знайти з терміналу з командою

man sudoers

Ви навіть можете користуватися простим текстом для редагування файлів, проте приватні особи це ускладнюють. sudoers є-r--r----- (Octal 0440)

Це вказує на те, що Apple насправді не хоче, щоб ви возилися з файлом. Це справді основна безпека ОС.

Можливості редагування - це vi, emacs або мій особистий улюблений BBEdit.


5
Є причина, що ці пільги встановлені. Вони встановлені в спробі змусити вас використовувати, visudoа не редагувати файл самостійно. Крім того, це не має нічого спільного з OS X. Це стандартний * nix. Крім того, якщо ви хочете використовувати редактор за замовчуванням, просто встановіть $EDITORзмінну середовища перед викликом visudo. напр EDITOR=nano sudo visudo.
daviewales

1

Вимкнути тайм-аут sudo за допомогою цієї команди:

sudo sh -c 'echo "\nDefaults timestamp_timeout=-1">>/etc/sudoers'

Щоб знову ввімкнути тайм-аут sudo за допомогою цього методу:

sudo sed -i "/Defaults timestamp_timeout=-1/d" /etc/sudoers

8
На сторінці людини sudoers: файл sudoers завжди повинен редагуватися командою visudo, яка блокує файл і робить граматичну перевірку. Обов'язково, щоб судори не мали синтаксичних помилок, оскільки sudo не запускатиметься із синтаксично неправильним файлом sudoers.
Маттео

@Matteo Ну, ви можете робити все, що завгодно, на власній власності, якщо ви знаєте про наслідки. У деяких ситуаціях це нормально, наприклад, я використовую його для свіжих Mac-версій, які не мають цінних даних про них як частину сценарію автоматизації. Я запропонував редагувати цю відповідь, щоб надати попередження. В ідеалі sudoповинен бути однолінійний спосіб змінити це без необхідності редагувати файл!
samthebest

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