Как мне увеличить пароль на запоминание пароля?

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приводит к тому, что пароль никогда не истекает. Вы можете изменить номер на то, что вам нравится в течение нескольких минут.

В справочной странице sudoговорится, что sudo -v«время ожидания sudo увеличивается еще на 5 минут».

Запуск «sudo visudo» вместо редактирования файла напрямую приводит к тому, что система проверяет файл sudoers перед тем, как зафиксировать изменения. Например, если вы оставите какой-нибудь случайный символ где-то, при сохранении и выходе он скажет: «В файле sudoers есть ошибка, что бы вы хотели сделать?» ... следовательно, дает вам возможность вернуться и редактировать. На самом деле это случилось со мной 10 минут назад.

LHF
источник
20
Да, но visudoперед сохранением запускает некоторые базовые проверки работоспособности файла sudoers. Если вы запутались в файл, используя viнепосредственно вы можете запереться из использования Sudo , что делает его очень трудно отменить изменения.
nohillside
4
В других системах такие же привилегии, что и с Apple. visudoобтекает системный редактор по умолчанию (я бы сказал, что пользователь root по умолчанию, если root переопределил значение по умолчанию), поэтому не имеет никакого отношения к строке имени. В моей системе (не Apple, кстати) я получаю нано. Попробуйте export EDITOR='/bin/nano'или любой другой редактор, который вам нравится, затем используйте visudo.
Крис
4
Хм ... Вы не можете использовать root, чтобы исправить это, потому что вы не можете получить root, потому что вы только что заполнили файл sudo ... В этом весь смысл.
daviewales
1
В профессиональной роли у вас может быть доступ к sudo, но у вас нет пароля root. Возможно, ваш сервер находится в центре обработки данных по всей стране, что затрудняет доступ к однопользовательскому режиму. Но, если бы вы сказали, что профессионал, вы, вероятно, не получили бы такие предупреждения. Дело в том, что вы должны учиться у профессионалов. Не ищите способов избежать формирования хороших привычек. Тогда мы должны услышать ваши безумные крики на Stack Exchange и IRC.
Бруно Броноски
1
(Может быть, это очевидно для всех, но добавим): timestamp_timeout указывается в минутах, может включать дробный компонент.
пользователь
3

Будьте очень осторожны при модификации /etc/sudoersнапрямую!

Например, я попробовал вышеупомянутое предложение непосредственно:

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

который испортил мой /etc/sudoersфайл (на виртуальной машине CentOS Virtualbox). Должно было:

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

К счастью, я имел доступ к учетной записи root, вошел в систему как root, использовал visudoи исправил проблему! Итак, я согласен с вышеуказанными комментариями использовать visudoвместо.

user304227
источник
1

Всю информацию для sudoers можно найти из терминала с помощью команды

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
patpat
источник
8
Со страницы руководства sudoers: Файл sudoers всегда должен редактироваться командой visudo, которая блокирует файл и выполняет грамматическую проверку. Крайне важно, чтобы в sudoers не было синтаксических ошибок, поскольку sudo не будет работать с синтаксически некорректным файлом sudoers.
Маттео
@ Matteo Ну, вы можете делать все, что вам нравится на вашей собственной собственности, если вы знаете о последствиях. В некоторых ситуациях это нормально, например, я использую его на свежих сборках Mac, на которых нет ценных данных, как часть сценария автоматизации. Я предложил изменить этот ответ для предупреждения. В идеале sudoдолжен быть однострочный способ изменить это без необходимости редактировать файл!
Самбест
1
Осторожно, это опасный совет. Вместо этого используйте visudo.
Уилл Шеппард