Две вещи приходят на ум. Во-первых, отредактируйте сценарий так, чтобы только команды, для которых нужны поднятые полномочия, были выполнены с sudo
. Это должно позволить Вашему соединению SSH работать. Это имеет преимущество выполнения с поднятыми полномочиями только те команды, для которых нужно оно. Выполните команду без sudo
на командной строке, полагаясь на факт sudo
вызовы в сценарии сделают правильную вещь.
Во-вторых, отредактируйте сценарий так, чтобы он явно определил имя пользователя для соединения как. Можно использовать $SUDO_USER
переменная, которая содержит имя пользователя пользователя, который запустил ток sudo
сессия. Это должно добиться цели:
ssh "${SUDO_USER}@remotehost.example.com"
Вид GNU извлек бы выгоду из - функция диапазона для поддержки этой общей операции: http://lists.gnu.org/archive/html/bug-coreutils/2009-07/msg00019.html
Таким образом, я предложил бы реализовать это в локальной версии вида (1), и мы объединим его в восходящем направлении также для создания его общедоступным