1

Я начал новую работу, в которой в основном используется Ubuntu, и в ней есть сценарий boostrap для bash на основе apt-get. Я переименовал пакеты соответствующим образом из MacPorts, но некоторые программы занимают достаточно много времени для сборки / установки, что истекло время sudo. Есть ли способ, с помощью которого я могу запросить пароль в начале скрипта, а затем не запрашивать его снова, пока скрипт не закончится?

Я думаю, что могу каким-то образом установить переменную сеанса для каждого терминала, чтобы переопределить тайм-аут sudo, а затем восстановить его, но я не знаю, является ли это лучшим способом. В идеале новый человек мог бы запустить это в первый день и уйти, пока он склонен к более административным вещам.

3 ответа3

2

Запустите sudo visudo в Терминале и добавьте следующую строку в "блок" по Defaults чтобы получить время ожидания 1 час:

Defaults timestamp_timeout=60

От man sudoers:

timestamp_timeout
Количество минут, которое может пройти до того, как sudo снова запросит пароль. По умолчанию 5. Установите 0, чтобы всегда запрашивать пароль. Если установлено значение меньше 0, отметка времени пользователя никогда не истечет. Это можно использовать, чтобы позволить пользователям создавать или удалять свои собственные временные метки через sudo -v и sudo -k соответственно.

Знайте, что вы открываете себя для проблем безопасности. Частое использование sudo -k для принудительного тайм-аута.

1

Просто для завершения корневая оболочка также может предотвратить тайм-аут sudo .

sudo -H -i
1

Вы можете установить дерево портов для запуска с вашим пользователем:

Установите macports как обычно, затем перед установкой chown дерево портов в /opt/local для вашего пользователя. Теперь все, что вы делаете с портами, можно сделать без sudo. Только порты, которым требуются права суперпользователя для установки таких вещей, как новые пользователи, группы или службы, потерпят неудачу и будут работать только с sudo.

Были планы реализовать что-то вроде разделения привилегий в macports, но я так и не узнал, реализовано ли это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .