Почему бы вам просто не использовать опцию настраиваемого приглашения для sudo и позволить ему запрашивать пароль, если он ему нужен?
Вы начинаете с проверки, являются ли они пользователем root или нет так:
SUDO=""
if [[ 0 == $(id -u) ]]
then
SUDO="sudo "
fi
$SUDO command 1
$SUDO command arg arg arg
, а затем при желании объедините это с возможностью настройки приглашения sudo с помощью параметра -p.
then
SUDO="sudo -p \"I need elevated access for this part. Please enter %u's password:\" "
fi
Вы по-прежнему получаете контроль над интерфейсом, но не запрашиваетедля пароля, если вам это не нужно.Например, некоторые люди могут настроить sudo для работы с nopassword.Другие могут запустить ваш установщик от имени пользователя root.Или, может быть, их пароль уже кэширован с помощью sudo.И т.д. Лучше всего позволить sudo управлять запросами, возможно, при необходимости используя программу askpass (см. Параметр -A).