Есть ли способ, с помощью которого я могу заставить команду sudo давать мне разрешения на более длительный период, чем время по умолчанию?
Это может быть боль, связанная с вводом пароля sudo , требуя установки множества пакетов, так что было бы хорошо, если бы существовала команда или конфигурация, которые могут быть сделаны, чтобы повлиять на период использования.
Из man sudoers:
timestamp_timeout
Number of minutes that can elapse before sudo will ask
for a passwd again. The timeout may include a frac‐
tional component if minute granularity is insufficient,
for example 2.5. The default is 15. Set this to 0 to
always prompt for a password. If set to a value less
than 0 the user's time stamp will never expire. This
can be used to allow users to create or delete their
own time stamps via “sudo -v” and “sudo -k” respec‐
tively.
Как вы можете видеть, таймаут по умолчанию sudo составляет 15 минут. Вы можете изменить это значение в /etc/sudoers.
Вы не редактируете непосредственно /etc/sudoers, а используете visudo для этого.
Из man visudo:
visudo edits the sudoers file in a safe fashion, analogous to vipw(8).
visudo locks the sudoers file against multiple simultaneous edits, pro‐
vides basic sanity checks, and checks for parse errors. If the sudoers
file is currently being edited you will receive a message to try again
later.
Итак, введите sudo visudo в терминал, который откроет файл /etc/sudoers в текстовом редакторе nano.
Ищите эту строку:
Defaults env_reset
И добавьте timestamp_timeout=X, где X - время, которое вы хотите установить за считанные минуты.
Итак, в качестве примера :
Defaults env_reset,timestamp_timeout=5
Если вы укажете 0, вам всегда будет задан пароль. Если вы указали отрицательное значение, тайм-аут никогда не истечет.
После завершения сохраните и выйдите.
X
Попробуйте это.
Выполните следующую команду в терминале:sudo visudo
Прокрутите вниз до строки, которая выглядит так: Defaults env_reset
Измените ее, например: Defaults env_reset,timestamp_timeout=30
Измените 30 на время, в минутах, что вы хотите, чтобы он подождал, пока он не истечет. Вы также можете изменить его на 0, если вы хотите вводить пароль каждый раз при запуске sudo или -1, если вы никогда не хотите приглашения пароля. Нажмите Ctrl + X, чтобы закончить редактирование, Y, чтобы сохранить изменения, и Enter для выхода. [!d8 ]
Вот источник: http://lifehacker.com/make-sudo-sessions-last-longer-in-linux-1221545774
Не могу поверить, что простейшая команда:
sudo -s
здесь не упоминается. Переключатель «-s» предоставляет вам консоль с правами root, которая сохраняется до ее выхода. Нет необходимости качаться с настройками по умолчанию.
Вы можете отредактировать файл /etc/sudoers (с sudo visudo: будьте осторожны) и добавить строку, подобную
Defaults:myname timestamp_timeout=15
, где myname - ваш идентификатор пользователя. Значение тайм-аута находится в минутах. Вы можете использовать значение -1 для того, чтобы никогда не истекать, а затем введите sudo -k, чтобы убить аутентификацию, так что вам нужен пароль еще раз.
Или вы можете добавить запись, чтобы сказать, что определенная команда не нужен пароль вообще.
Все остальные ответы до сих пор, похоже, сосредотачиваются вокруг изменения таймаута по умолчанию, как долго вы снова вводите пароль с помощью sudo. Однако, если вы хотите просто запускать команды как root без добавления каждой команды с помощью sudo, вы можете получить корневую оболочку с помощью:
sudo -i
или
sudo bash
или
sudo <your preferred shell here>
. Хотя все они только запускают один процесс с правами root, единственный процесс, о котором идет речь, просто является оболочкой, которая позволит вам запустить столько других процессов, сколько вы например root, без необходимости вводить sudo или пароль. :)
Конечно, с большой силой приходит большая ответственность, не делайте глупостей и т. д.
После просмотра слишком большого количества вопросов от пользователей, которые модифицировали файлы конфигурации и были смущены тем, почему их изменения были перезаписаны после обновления пакета, я хочу заметить, что если вы хотите изменить timestamp_timeout, лучше сделать это создавая файл в /etc/sudoers.d, а не напрямую изменяя /etc/sudoers.
Итак, вы должны сделать
sudo visudo -f /etc/sudoers.d/timeout
(имя файла может быть любым, что вы хотите, пока он не содержит период (.) и не заканчивается тильдой (~)). Вместо того, чтобы открывать /etc/sudoers в вашем избранном редакторе, он откроет /etc/sudoers.d/timeout, обычно как пустой файл, так как он не существует. Поместите в это
Defaults timestamp_timeout=X
и сохраните как обычно. Затем, если выйдет новая версия /etc/sudoers, вам не нужно выбирать между установкой более новой версии или сохранением ваших изменений - у вас автоматически будут оба.