Как инициализировать переменные для сценария

Если вы перейдете на https://cat.eduroam.org/ , вы можете выбрать свой университет, и он загрузит сценарий.

Одна из причин, по которой вы можете захотеть использовать этот сценарий, заключается в том, что он загрузит правильный CA. Я попробовал предыдущие ответы, прежде чем попробовать сценарий, и оказалось, что предыдущий не работал, потому что мое учреждение использует корень digicert.

С терминала (после загрузки из Chrome) я сделал:

  1. cd ~ / Downloads
  2. chmod + x eduroam-linux-USU.sh (измените это на сценарий для вашего университета)
  3. ./ eduroam-linux-USU.sh (снова измените имя сценария на то, которое вы скачали)
  4. Следуйте подсказкам на экране
  5. Теперь вы можете подключиться

Примечание: Это официальный сценарий Eduroam, а не какой-то сторонний сценарий. То есть он был разработан компанией, предоставляющей доступ Eduroam. В этой связи они, вероятно, не собираются делать ничего злонамеренного.

Я просмотрел этот сценарий на предмет проблем безопасности некоторых людей, и, хотя я не очень разбираюсь в сценариях оболочки, похоже, что он делает следующее:

  • Создает каталог с именем ".cat_installer" в вашей домашней папке
  • Добавляет сертификат с именем ca.crt в каталог «.cat_installer»
  • Добавляет файл PFX с именем «user.p12» в каталог «.cat_installer»
  • Добавляет сетевые настройки для Eduroam, включая: ssid, key_mgmt, попарно , group, eap, ca_cert, identity, subject_match, phase2 и password
  • Пытается удалить все предыдущие сети, определенные как eduroam

4
05.12.2017, 17:29
1 ответ

Я могу придумать пару вещей, которые сделают основной сценарий менее загроможденным.

  1. Заставьте ваши функции возвращать ненулевой код выхода, отличный от -, если значение не может быть определено, используя return 1. В качестве альтернативы заставьте их фактически завершить скрипт с помощью exit.

    Заставить их возвращать не -нулевой статус выхода, будет хорошо работать вместе с использованием переменной ссылки на имя:

    set -e
    
    generate_customer_id CUSTOMER_ID "Z"
    

    Здесь мы предполагаем, что generate_customer_idпринимает имя переменной для установки в качестве первого аргумента (она будет использовать typeset -n var="$1"в своем коде и установит var=...something...перед возвратом ). Если ему не удастся получить идентификатор клиента для второго аргумента, будет return 1. Затем основной сценарий завершится из-за set -e(, это заставит оболочку закрыться, как только команда вернет не -ноль ).

  2. В дополнение к вышесказанному или, возможно, вместо него используйте set -u. Это приведет к завершению сценария, как только вы попытаетесь расширить значение переменной, которая в данный момент не установлена.

1
27.01.2020, 20:57

Теги

Похожие вопросы