Вы не дали много информации, чтобы продолжать. Вы можете попробовать Wireshark или iPtables (в зависимости от вашей конфигурации).
поняли это. Вот мой функциональный сценарий:
#!/bin/bash
ADMIN_PASS="$(cat /Users/adminuser/Documents/UpdateScript/enPass.txt)"
ADMIN_USER="adminuser"
HOST_LIST="/Users/adminuser/Desktop/hosts.txt"
for HOST in $(< $HOST_LIST); do
echo ""
echo "--------------------------------"
echo "# CONNECTING TO: $HOST #"
echo "--------------------------------"
echo ""
ssh -tt $ADMIN_USER@$HOST << ENDSSH
echo 'Connected to host!'
echo $ADMIN_PASS | base64 -d | sudo -S /usr/local/munki/managedsoftwareupdate -v --auto
echo 'Finished Munki Update!'
echo $ADMIN_PASS | base64 -d | sudo -S softwareupdate -ia
echo 'Finished Apple Software Update!'
echo $ADMIN_PASS | base64 -d | sudo -S shutdown -r now
logout
ENDSSH
echo ""
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "~~ Update script completed successfully on $HOST ~~"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo ""
done
Явно передача $ADMIN_PASS
переменная к каждой команде, которую я хотел выполнить, кажется, работает просто великолепно. Я сделал предположение, что, потому что это собиралось работать на удаленном Mac, локальное $ADMIN_PASS
, переменная не шла на работу. Я продолжу смешивать с этим, поскольку мне не нравится то, что это заметно отображает значение в enPass.txt каждый раз , $ADMIN_PASS эха
используется. Надеялся, что этот синтаксис отправит его в команда base64-d
и сохранит его от Окна терминала.
Это функционирует хорошо. Если у кого-либо есть предложения, сообщить мне. Мне также любопытно из того, насколько безопасный этот сценарий. Если мой мозг работает должным образом, я думаю , зашифрованный пароль отправляется в клиентскую систему и ЗАТЕМ дешифрован прежде чем быть используемым в команды sudo-S
.