Переменная PATH не может быть изменена в функции оболочки

Самый простой способ выяснить, устранены ли проблемы, - это найти отдельные номера CVE (которые указаны в уведомлении, которое вышло) в группе безопасности CVE Tracker . Это указывает, были ли определенные CVE исправлены в Ubuntu или нет, или же CVE влияет на Ubuntu.

Что касается связанного вами уведомления, все CVE, на которые есть ссылки, уже исправлены в пакетах OpenSSL в Ubuntu .

Обязательный дамп ссылок данных трекера CVE команды Ubuntu Security Team для некоторых CVE в уведомлении OpenSSL:

blockquote>

Примечание о номерах редакций пакета OpenSSL и выходные данные openssl version

Пакеты для OpenSSL в Ubuntu большей частью привязаны к определенной версии OpenSSL в каждом выпуске Ubuntu . То есть для Trusty основной версией OpenSSL является OpenSSL 1.0.1f, начиная с января 2014 года. Это только версии библиотеки core , она не учитывает примененные к ней патчи и т. Д. [ 1131]

Чтобы определить, был ли пакет обновлен с помощью исправлений и т. Д., Используйте номер редакции пакета Debian и соответствующие записи журнала изменений . Версия пакета OpenSSL и соответствующих библиотек в Ubuntu Trusty в настоящее время находится на этом посту:

 openssl | 1.0.1f-1ubuntu2    | trusty           | source, amd64, arm64, armhf, i386, powerpc, ppc64el
 openssl | 1.0.1f-1ubuntu2.21 | trusty-security  | source, amd64, arm64, armhf, i386, powerpc, ppc64el
 openssl | 1.0.1f-1ubuntu2.21 | trusty-updates   | source, amd64, arm64, armhf, i386, powerpc, ppc64el

Глядя на второй столбец, мы видим, что последняя доступная версия для OpenSSL - 1.0.1f-1ubuntu2.21, что означает после первоначального выпуска Trusty у него было несколько ревизий (в которых было 1.0.1f-1ubuntu2).

Правила сборки пакета для пакета OpenSSL не используют строку Debian в данных версии. Он использует только строку оригинальной версии OpenSSL, 1.0.1f. Вот почему openssl version вводит в заблуждение, и для предварительно упакованных версий OpenSSL вы полагаетесь на журналы изменений для пакета, трекер безопасности Ubuntu и строку версии в пакете , а не на [116 ] в упакованном программном обеспечении (по крайней мере для OpenSSL).

1
задан 14.04.2020, 18:10

1 ответ

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

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

source Script.sh

или просто:

. Script.sh          #dot, space and the path to the script

Кроме того, ваш [113 ] должно выглядеть следующим образом:

#!/bin/bash

source /path/to/SetEnv  #if you want that your script to know about 'SetEnv' function.

SetEnv

echo $PATH

Подробнее о: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_01.html .

0
ответ дан 14.04.2020, 18:10

Теги

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