Как перекомпилировать Bash, чтобы избежать Shellshock (удаленный эксплойт CVE-2014-6271 и CVE-2014-7169)?

Учитывая, что Bash 3.2 (версия, отправленная OS X), уязвима для CVE-2014-6271 и CVE-2014-7169 ), как мне перестроить Bash и защитить мою систему перед официальным патчем Apple?

ОБНОВЛЕНИЕ: Обратите внимание, что Apple выпустила официальный патч. Подробнее см. Ниже .

364 голоса | спросил AlBlue 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2014 22:35:05 +0400 2014, 22:35:05

7 ответов


426

Состояние

Apple выпустила исправления безопасности Bash для Shellshock и связанные с ними уязвимости как « OS X bash Update 1.0 ». Они могут быть установлены с помощью обычного обновления системы для людей, использующих OS X Mountain Lion v10.8.5 или OS X Mavericks v10.9.5 (они включены в Обновление безопасности 2014-005 ), а также можно установить вручную. Официальные исправления Apple также доступны для OS X Lion v10.7.5 и OS X Lion Server версии 10.7.5, но они доступны только при ручной загрузке. Исправления безопасности доступны через разные URL-адреса на основе версии операционной системы:

(Если новые патчи выпущены, поместите их здесь, но, пожалуйста, сохраните эти существующие для справки.)

Патч Apple заботится о Shellshock и некоторых других уязвимостях и подходит для большинства людей. tl; dr люди могут перестать читать здесь.

ОДНАКО, внимание, привлеченное к bash ошибкой Shellshock, вызвало у многих исследователей серьезный взгляд на bash, и все больше и больше (трудно использовать) уязвимость сохраняется. Если вы сильно обеспокоены безопасностью (потому что, возможно, вы используете OS X Server для размещения общедоступного веб-сайта), вы можете захотеть (попытаться) идти в ногу с уязвимостями и исправлениями, поскольку они продолжают работать, компилируя bash самостоятельно. В противном случае, не беспокойтесь об этом.

Посмотрите, как Apple выпустит еще одно обновление, чтобы немного уйти в будущем, когда пыль окунется в поисках дальнейших уязвимостей.


Имеется официальный набор исправлений bash для bash 3.2, исправлений 52, 53 и 54 (которые соответствуют патчам Bash 4.3 25, 26 и 27), которые фиксируют как CVE-2014-6271, так и CVE-2014 -7169, а также «Игра поверх», показанная ниже. Это было проверено мной ( @alblue ), и сообщение было обновлено соответствующим образом (а затем были сделаны дополнительные обновления : см. версию 41 для сообщения, которое останавливается на патче 54).

Сообщается о многочисленных дополнительных уязвимостях в отношении bash. Согласно сообщению Михаила Залевского , если у вас есть патч 54 ( и предположительно официальный патч от Apple) «нет смысла одерживать состояние этих отдельных ошибок, потому что они больше не должны представлять угрозу безопасности:«

  • CVE-2014-6271 - оригинальный RCE, найденный Стефаном. Исправлено bash43-025 и соответствующие записи Sep 24 для других версий.

  • CVE-2014-7169 - ошибка создания файла /токена, найденная Tavis. Исправлено bash43-026 & co (сентябрь 26)

  • CVE-2014-7186 - вероятная авария с кодом ниже + без риска, обнаруженная Флориан и Тодд. Исправлено bash43-028 & co (окт. 1).

  • CVE-2014-7187 - без сбоев, возможно, без риска для вас найденный Флорианом. Исправлено bash43-028 & co (окт. 1).

  • CVE-2014-6277 - проблема неинициализированной памяти, почти наверняка RCE найденный Михалом Залевским. Пока нет конкретного патча.

  • CVE-2014-6278 - командная инъекция RCE, найденная Михалом Залевским. Пока нет конкретного патча.

Это становится довольно запутанным. К счастью, Чет Рами, официальный сопровождающий баш, разместил CVE для патч . Его сообщение относится к патчам для bash 4.3, I (@OldPro) перевела их в патчи для bash 3.2, что и применимо к OS X. Кроме того, с этого поста он выпустил патч 57, поэтому я добавил, что ниже:

  bash32-052      CVE-2014-6271                           2014-09-24
 bash32-053      CVE-2014-7169                           2014-09-26
 bash32-054      exported function namespace change      2014-09-27 ("Game Over")
 bash32-055      CVE-2014-7186/CVE-2014-7187             2014-10-01
 bash32-056      CVE-2014-6277                           2014-10-02
 bash32-057      CVE-2014-6278                           2014-10-05

Посмотрите пост на график и более подробную информацию.

@alblue опубликовал инструкции сборки через патч 55. I (@OldPro) добавил патч 56 и 57 в инструкции, но не протестировал его.

Тестирование дляИсходная уязвимость

Вы можете определить, уязвимы ли вы к исходной проблеме в CVE-2014-6271 , выполнив этот тест:

 $ env x='() { :;}; echo vulnerable' bash -c 'echo hello'
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

Вышеприведенный вывод является примером не-уязвимой версии bash. Если вы видите слово vulnerable в выводе этой команды, ваш bash уязвим, и вы должны обновить его. Ниже представлена ​​уязвимая версия OS X 10.8.5:

Снимок экрана терминала bash с уязвимостью в 10.8.5

Тестирование новой уязвимости

Обновлено исходное сообщение и Bash 3.2.52 (1) по-прежнему уязвим для изменения уязвимости, определенной в CVE-2014-7169

 $ rm -f echo
$ env X='() { (a)=>\' sh -c "echo date"; cat echo
sh: X: line 1: syntax error near unexpected token `='
sh: X: line 1: `'
sh: error importing function definition for `X'
Thu 25 Sep 2014 08:50:18 BST

Вышеприведенный вывод является примером уязвимой версии bash. Если вы видите дату на выходе этой команды, ваш уязвимость bash.

Отключение авто-импортированных функций для предотвращения «Game Over»

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

 $ env ls="() { echo 'Game Over'; }" bash -c ls
Game over

Приведенный выше код в затронутой системе отобразит Game Over вместо списка каталогов, который вы ожидаете от ls. Очевидно, что echo 'Game Over' может быть заменен любым гнусным кодом, который вы хотите. Это стало известно как ошибка «Игра над».

До появления патча 54 оба NetBSD и FreeBSD отключил автоматическое импортирование bash-функций по умолчанию, частично, чтобы предотвратить «Game Over», но главным образом, чтобы содержать любые дополнительные ошибки в синтаксическом анализаторе (например, CVE -2014-7169 ), поскольку они продолжают обнаруживаться и добавили новый флаг командной строки --import-functions, чтобы повторно включить старое поведение по умолчанию. Я (@alblue) подготовил патч (против 3.2.53) для других, чтобы использовать, если они хотят принять это поведение, а также включили его ниже. По умолчанию этот патч не включен в скрипте сборки ниже. I (@OldPro) полагает, что этот патч больше не нужен или не является хорошей идеей, потому что он нарушает совместимость и защищает от уязвимостей, которые очень хорошо устраняются патчем 54 и более ранними исправлениями, и включение этого неофициального патча предотвращает применение будущих патчей ,

(Обратите внимание на вопрос редакторов, пожалуйста, не включайте это по умолчанию, так как это неофициальный патч.)

a0c5c4d66742fddd0a35001cb91798a5fbf8a2f5 import_functions.patch

Патч можно включить, выполнив export ADD_IMPORT_FUNCTIONS_PATCH=YES перед запуском сборки. Обратите внимание, что , позволяющее этому патчу отключить патч 54 и любые будущие патчи , поскольку будущие патчи не могут быть гарантированы совместимость с неофициальным патчем.

Apple Patch имеет Game Over уязвимость, тип

Как указано @ake_____ на twitter официальный патч Apple по-прежнему уязвим для сближения окружающей среды исполняемых файлов:

 $ env '__BASH_FUNC<ls>()'="() { echo Game Over; }" bash -c ls
Game Over

Пользователи должны сами решить, насколько это важно. Я (@OldPro) думаю, что это не о чем беспокоиться, потому что для этого поведения нет известного эксплойта (ему даже не был присвоен идентификатор CVE), поскольку в целом непривилегированные удаленные злоумышленники не могут установить имя переменная среды и злоумышленники с привилегиями не могут использовать это, чтобы получить привилегии, которых у них еще нет (по крайней мере, без использования дополнительной уязвимости).

Чтобы предоставить небольшой фон, bash позволяет вам определять функции, а кроме того, позволяет экспортировать эти функции в подзаголовки черезexport -f. Это было реализовано путем создания переменной окружения с тем же именем, что и функция с ее значением, установленным в определении функции. Так

 $ ls () { echo 'Game Over'; }
$ export -f ls
$ echo $ls
Game Over

Это произошло потому, что export -f ls создал переменную среды с именем ls. Уязвимость «Game Over» заключалась в том, что вы могли напрямую создать эту переменную среды без необходимости сначала определять эту функцию, а это означало, что если вы могли бы ввести правильное имя переменной, вы могли бы захватить команду. Apple попыталась исправить это, сделав сложным создание переменной с правильным именем. Официальный патч bash 54 фактически не позволяет создать переменную с правильным именем, используя имена переменных, которые включают %, который является символом, недопустимым в имени переменной, эффективно помещая экспортированные определения функций в другое , зарезервированное пространство имен.

Если ни одно из вышеизложенного не имеет смысла для вас, не беспокойтесь об этом. На данный момент у вас все в порядке с патчем Apple.

Системные двоичные файлы

OS X 10.9.5 (последняя стабильная версия на данный момент) поставляется с Bash v3.2.51:

 $ bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

Вы можете получить и перекомпилировать Bash следующим образом , предоставляя что у вас установлен Xcode (и запустите xcodebuild хотя бы один раз, прежде чем принимать лицензию):

 $ # If you want to disable auto-imported functions, uncomment the following
$ # export ADD_IMPORT_FUNCTIONS_PATCH=YES
$ mkdir bash-fix
$ cd bash-fix
$ curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
$ cd bash-92/bash-3.2
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0    
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0  
$ # See note above about ADD_IMPORT_FUNCTIONS_PATCH
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] && curl http://alblue.bandlem.com/import_functions.patch | patch -p0
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] || curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-054 | patch -p0
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] || curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-055 | patch -p0
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] || curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-056 | patch -p0
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] || curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-057 | patch -p0
$ cd ..
$ # Note: DO NOT ADD SUDO TO XCODEBUILD HERE
$ xcodebuild
$ build/Release/bash --version # GNU bash, version 3.2.57-release
$ build/Release/sh --version   # GNU bash, version 3.2.57-release
$ sudo cp /bin/bash /bin/bash.old
$ sudo cp /bin/sh /bin/sh.old
$ sudo cp build/Release/bash /bin
$ sudo cp build/Release/sh /bin

(Примечание: вы можете запустить это путем копирования и вставки вышеуказанного блока кода, перехода в терминал и последующего запуска pbpaste | cut -c 2- | sh. Всегда будьте осторожны при запуске случайного скрипты из Интернета, хотя ...)

После этого версия Bash должна быть v3.2.57:

 $ bash --version
GNU bash, version 3.2.57-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

Для обеспечения безопасности и после тестирования я рекомендую вам chmod -x старые версии, чтобы гарантировать, что они не будут повторно использоваться, или переместите их на резервный сайт.

$ sudo chmod a-x /bin/bash.old /bin/sh.old

Другие ответы имеют решения для тех, кто использует MacPorts или Homebrew; они не устраняют проблему, они просто устанавливают дополнительные версии Bash. Пожалуйста, просмотрите эти ответы, если вы хотите их специально обновить.

Спасибо

Благодаря Чет, который следит за bash и делает эти патчи доступными. Спасибо всем, кто прокомментировал это и улучшил его с течением времени.

Теперь Apple выпустила реальное исправление, хотя это все еще может быть полезно. Потому что они только выпустили исправление для Lion и выше, а официальный патч содержит GNU bash, версия 3.2.53 (1) -release (x86_64-apple-darwin13), однако ошибка в игре по-прежнему несколько уязвима. На данный момент перестройка собственной версии Bash против 3.2.57, вероятно, более безопасна, чем полагаться на патч от Apple, если вы не ошибетесь.

ответил AlBlue 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2014 22:35:50 +0400 2014, 22:35:50
17

MacPorts

Это дает вам версию bash 4.3.28 (1), в которой исправлены обе уязвимости (CVE-2014-6271 и CVE-2014-7169), а также некоторые впоследствии обнаруженные. Это полезно, если вы изменили оболочки для использования Macports bash для получения возможностей версии 4.

Это не решит проблему стандартных сценариев ОС, поскольку в качестве первой строки есть #!/bin/sh или #!/bin/bash. Такая проблема заключается в том, почему Macports пытается не использовать поставляемые Apple версии программ, поскольку Macports, как правило, обновляется быстрее, например. он имеет более новую версию bash)

Вы можете использовать терминал так, как в ответе Homebrew

Чтобы установить macports, следуйте этим инструкциям , которые находятся на странице 1. Установите Xcode и инструменты командной строки Xcode
2. Согласитесь с лицензией Xcode в терминале: sudo xcodebuild -license
3. Загрузите MacPorts pkg для своей версии OS X: ссылки находятся на странице
4. Запустите pkg

Когда вы устанавливаете macports, вам нужны последние версии, это делается при запуске

sudo port selfupdate

и перекомпилируйте или получите последние двоичные файлы с помощью

sudo port upgrade outdated
ответил Mark 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 00:04:21 +0400 2014, 00:04:21
16

ПРИМЕЧАНИЕ относительно официального обновления для Apple OS X bash 1.0: это обновление программного обеспечения приносит официальную версию Apple bash до 3.2.53. Версия исправления 3.2.54 предлагает следующее изменение:

  

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

Для пользователей, которые уже исправили систему с помощью бинарных файлов 3.2.54, вы можете либо заменить свои скомпилированные двоичные файлы патчем Apple, либо оставить вещи такими, какие они есть, но это не рекомендуется. Хотя Apple оставила двоичное управление версиями в 3.2.53, Apple patch DOES содержит исправление для теста ниже:

env X='() { (a)=>\' sh -c "echo date"; cat echo

Это означает, что двоичный файл Apple 3.2.53 содержит эквивалентную защиту двоичного файла Vanilla GNU 3.2.54. Несчастная точка смятения, но это то, что есть. Исправление Apple не испечено. По всей видимости, это исправление проблемы. Таким образом, приведенная ниже дорожная карта для компиляции vanilla bash и sh из источника GNU должна считаться историческим артефактом и, возможно, рассматриваться как шаблон для того, как делать патчи в будущем, следует они необходимы.

ПРИМЕЧАНИЕ. С источником GNU от vanilla sh возникают проблемы с повышенными привилегиями, которые вызывают сбои в различных установщиках, например Adobe Flash. Я настоятельно рекомендую придерживаться двухъядерных файлов Apple. Подумайте, что эта схема патчей устарела и не рекомендуется.

Существует новый патч GNU bash 3.2.55, в котором описывается следующее исправление:

  

Bug-Описание:

     

В parse есть два локальных переполнения буфера. Это может вызвать оболочку   сбрасывать ядро ​​при предоставлении многих здесь документов, прикрепленных к одной команде   или много вложенных циклов.

Мы оставляем это внимательному читателю, чтобы определить, сидеть ли с официальными Apple-исправленными бинарниками или сворачивать свои собственные, чтобы иметь дело с новыми возможными эксплойтами. Лично я буду придерживаться двоичных файлов Apple.


В этом сообщении подробно описывается, как скомпилировать и установить vanilla bash и sh в OS X. Я выбрал этот маршрут, поскольку следующие примеры, детализирующие использование источника Apple, не оставили меня с правильной версией исправления. YMMV. Тем не менее, эта установка на основе ванили нацелена на замену двоичных файлов OS X таким образом, что, когда Apple наконец выпустит обновление для системы безопасности, эти заменители ванили будут узурпированы их соответствующими аналогами Apple.

Моя базовая конфигурация:

OS X Lion 10.7.5 и Xcode 4.6.3 со всеми утилит командной строки.

Мои шаги, чтобы исправить это, были:

Загрузите базовый исходный код bash для версии 3.2.48:

https://ftp.gnu.org/gnu /bash/bash-3.2.48.tar.gz

Загрузите патчи bash3.2.49, .50, .51, .52, .53, .54 и .55 из:

https://ftp.gnu.org/gnu/bash/Баш-3,2-пластыри /

Я сохранил их как $ filename.patch, например, bash3.2.50.patch.

CD в каталог загрузки и

Распакуйте главную ветвь источника:

tar xzvf bash-3.2.48.tar.gz

cd bash-3.2.48

Предполагая, что вы переименовали загруженные файлы патчей, как описано ранее,

cp ../*.patch .

Затем â € |

for file in *.patch ; do
  patch -p0 < $file
done

Это должно показывать успешные патчи различных файлов. Если нет, будьте готовы провести некоторое исследование и расследование.

Далее:

sudo cp /bin/bash /bin/bash_old
sudo cp /bin/sh /bin/sh_old
sudo chmod -x /bin/bash_old
sudo chmod -x /bin/sh_old

Это в основном поддерживало ваши старые уязвимые оболочки bash и sh и удаляло их исполняемые привилегии. Это дает вам возможность восстанавливать команды по мере необходимости, но в то же время удаляет их способность наносить урон.

Далее:

./configure --prefix=/ ; make ; sudo make install

Это должно правильно настроить, скомпилировать и установить новую бинауму bash в /bin. После того, как это будет сделано, выйдите из терминала и снова запустите.

Вы должны, все довольные и улыбающиеся, иметь возможность bash --version и теперь см. 3.2.55, например:

Gaia:Downloads trane$ bash --version
GNU bash, version 3.2.55(1)-release (i386-apple-darwin11.4.2)
Copyright (C) 2007 Free Software Foundation, Inc.

Точный вывод в приведенной выше команде будет отличаться в зависимости от вашей версии OS X.

Вы также должны проверить свою уязвимость на bash и найти, что это нормально.

ПРИМЕЧАНИЕ. Мы только фиксировали bashдо сих пор, но исполняемый файл /bin/sh все еще находится в уязвимом состоянии. Простое копирование bash atop sh - это стиль Linux для работы. Однако реализация OS X sh имеет некоторые отличия от bash, поэтому вам нужно снова вытащить компилятор. Дополнительную информацию о том, как bash и sh отличаются в OS X, можно найти здесь:

https://apple.stackexchange.com/a/89327/91441

В каталоге загрузки выполните:

make clean

В вашем любимом редакторе откройте файл Makefile.in и прокрутите до строки 99. Мы собираемся изменить строку программы так, чтобы выводимый двоичный файл был sh вместо bash следующим образом:

Program = sh$(EXEEXT)

Сохраните его, а затем

./configure --prefix=/ --enable-xpg-echo-default --enable-strict-posix-default
make ; sudo make install

Теперь вы построите sh почти так же, как Apple.

Последнее замечание: в некоторых (все?) системах Apple обычно помещает исполняемый файл bashbug в /usr/bin. Наш компилятор поместил бы его в /bin. Итак, последние шаги здесь:

sudo mv /usr/bin/bashbug /usr/bin/bashbug_old
sudo chmod -x /usr/bin/bashbug_old
sudo mv /bin/bashbug /usr/bin/bashbug
ответил Trane Francks 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 14:33:37 +0400 2014, 14:33:37
14

Для тех, кто борется с компиляцией из источника, по состоянию на 29 сентября Apple официально выпустила исправления для Mac OS X 10.9.5, 10.8.5, а также 10.7.5:

ответил JakeGould 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 30 Sep 2014 02:23:54 +0400 2014, 02:23:54
4

Во-первых, исправление bash и sh для этой уязвимости, вероятно, нарушит некоторые скрипты на вашем Mac. Вам действительно не нужно это делать, если вы не предлагаете веб-сервисы в общедоступном Интернете прямо с вашего Mac. Поэтому, если это действительно не нужно, дождитесь официального обновления безопасности от Apple.

Предупреждение: вот некоторые инструкции о том, как сделать это обновление, используя Brew on Mavericks 10.9.

Сначала подтвердите, что вы используете устаревший bash:

$ which bash
/bin/bash
$ /bin/bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

Самый последний баш - 4.3.25

Если у вас нет установленного Xcode, вам понадобятся инструменты командной строки Xcode, которые можно установить с помощью

$ xcode-select --install

Или из Портал разработчиков .

Чтобы установить Brew ( http://brew.sh ):

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Тогда do:

$ brew doctor

Следуйте инструкциям, если есть проблемы. Многие распространенные проблемы являются здесь .

Затем обновите кипение до последнего списка пакетов:

$ brew update

Чтобы получить последнюю версию bash 4.3.25:

$ brew install bash

Это устанавливает bash в /usr/local/Cellar/bash/4.3.25/bin/bash

Старый bash и sh по-прежнему существует в /bin, поэтому после установки вы переименуете старые исполняемые файлы в новый файл.

$ sudo mv /bin/bash /bin/bash_old
$ sudo mv /bin/sh /bin/sh_old

Если вы очень параноик, вы можете удалить разрешения на выполнение в bash_old

$ sudo chmod a-x /bin/bash_old /bin/sh_old

Затем создайте символическую ссылку на новый bash 4.3.25, который заваривается.

$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/bash
$ sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/sh

Перезагрузка и завершение.

Предупреждение - это может привести к нарушению некоторых существующих сценариев оболочки, которые могут основываться на bash 3.2 или различиях, которые Mac sh имеет по сравнению с linux sh. Существует гораздо более сложный ответ на замену bash и sh из источников, из ответа @TraneFranks в этом же потоке.

ответил Christopher Allen 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 26 Sep 2014 02:11:30 +0400 2014, 02:11:30
4

OS X 10.6.8 - Snow Leopard

Сообщение @AlBlue очень полно. Однако на моем сервере OS X 10.6.8 его исправление не будет работать. Apple не имеет исправления для 10.6.8, и шаги, описанные @AlBlue, не работают с Xcode 3.2.6 (это последняя версия для Snow Leopard). Я получаю сообщение об ошибке:

** BUILD FAILED **

The following build commands failed:
sh:
    CodeSign /Users/bas/bash-fix/bash-92/build/Release/sh
bash:
    CodeSign /Users/bas/bash-fix/bash-92/build/Release/bash
(2 failures)

По этой причине я использую brew.sh . Прокомментируйте свои мысли, когда у вас есть лучшее решение для OS X 10.6.8 Snow Leopard. См. Также комментарий @Jerome, у него был успешный патч на OS X 10.6.8 Snow Leopard с использованием решения @ AlBlue. В любом случае:

Сначала установите варить со следующим oneliner:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Обновить brew

brew update

Теперь просто установите последнюю версию bash и замените текущий:

brew install bash
sudo sh -c 'echo "/usr/local/bin/bash" >> /etc/shells'
chsh -s /usr/local/bin/bash
sudo mv /bin/bash /bin/bash-backup
sudo ln -s /usr/local/bin/bash /bin/bash

Вы можете установить стандартную логическую оболочку «Command (complete path)» для Terminal.app в своих настройках ( Command , )) введите описание изображения здесь>> </p>

<hr>
<p> Примечание. В комментариях некоторые пользователи не считают, что этот метод подходит. Но для меня это единственный приемлемый метод обновления BASH на OS X 10.6.8 Snow Leopard. </p></body></html>

ответил CousinCocaine 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2014 23:44:10 +0400 2014, 23:44:10
-6

Вы можете выполнить следующие инструкции: https://github.com/tjluoma/bash-fix В основном, выполните следующие действия в терминале:

curl -s https://raw.githubusercontent.com/tjluoma/bash-fix/master/bash-fix.sh | zsh -f
ответил Sarah Vessels 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 30 Sep 2014 01:41:58 +0400 2014, 01:41:58

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132