Введите пароль только один раз для скрипта, выполняющего много вызовов sudo

Введите пароль только один раз для скрипта, выполняющего много вызовов sudo

Я пишу скрипт для загрузки сборки и установки кучи пакетов. Сборка иногда занимает некоторое время, а для установки требуются привилегии root:

сделать; sudo сделать установить

Часто случается так, что когда сборка занимает некоторое время, мне нужно постоянно вводить пароль. Я хочу иметь возможность ввести его только один раз. Я мог бы вызвать скрипт с правами root, но тогда (насколько я понимаю) каждый вызов, который он делает, будет с привилегиями root. Я не хочу этого, потому что тогда, например, создается много файлов и папок, которые нельзя удалить без прав root.

так как же лучше всего это сделать?

решение1

Используйте параметр timestamp_timeout. Используйте visudo для редактирования файла sudoers:

sudo visudo

и измените строку по умолчанию так, чтобы она выглядела так:

Defaults   env_reset,timestamp_timeout=60

это позволит сохранить ваш пароль в течение 60 минут.

Измените это время по желанию :)

решение2

Скрипт может содержать сами вызовы sudo. Если вы затем запустите скрипт с sudo, он охватит все sudo в скрипте и все должно быть в порядке.

Связанный контент