Da Bash 3.2 (die Version von OS X ausgeliefert) ist anfällig für die Remote - Ausführung Exploits bekannt als „Shell Shock“ ( CVE-2014-6271 und CVE-2014-7169 ) wie umbauen ich Bash und sichere mein System vor einem offizieller Apple Patch?
UPDATE: Beachten Sie, dass Apple jetzt den offiziellen Patch veröffentlicht hat. Siehe unten für Details.
Antworten:
Status
Apple hat Bash-Sicherheitsupdates für Shellshock und verwandte Sicherheitslücken als " OS X bash Update 1.0 " veröffentlicht. Sie können über ein normales Systemupdate für Benutzer von OS X Mountain Lion 10.8.5 oder OS X Mavericks 10.9.5 (im Sicherheitsupdate 2014-005 enthalten ) installiert und auch manuell installiert werden. Offizielle Apple-Fixes sind auch für OS X Lion 10.7.5 und OS X Lion Server 10.7.5 verfügbar, diese sind jedoch nur per manuellem Download verfügbar. Die Sicherheitsupdates sind abhängig von der Betriebssystemversion über verschiedene URLs verfügbar:
(Wenn neue Patches veröffentlicht werden, fügen Sie diese hier ein. Bitte bewahren Sie auch diese vorhandenen als Referenz auf.)
Der Apple-Patch behebt Shellshock und mehrere andere Sicherheitslücken und ist für die meisten Menschen in Ordnung. Die Leute können hier aufhören zu lesen.
JEDOCH hat die Aufmerksamkeit, die durch den Shellshock-Bug auf Bash gelenkt wurde, viele Forscher veranlasst, sich intensiv mit Bash zu beschäftigen, und es werden immer mehr (schwer auszunutzende) Sicherheitslücken gefunden. Wenn Sie sich große Sorgen über die Sicherheit machen (weil Sie möglicherweise OS X Server ausführen, um eine öffentlich zugängliche Website zu hosten), sollten Sie versuchen, mit den Sicherheitsanfälligkeiten und Patches Schritt zu halten, indem Sie die Bash selbst kompilieren. Ansonsten mach dir keine Sorgen.
Achten Sie darauf, dass Apple in Zukunft ein weiteres Update veröffentlicht, um zu verhindern, dass der Staub nachlässt, dass weitere Sicherheitslücken gefunden werden.
Es gibt einen offiziellen Satz von Patches für Bash 3.2, Patches 52, 53 und 54 (die den Bash 4.3-Patches 25, 26 und 27 entsprechen), mit denen sowohl CVE-2014-6271 als auch CVE-2014-7169 behoben werden können. sowie das unten angezeigte "Game Over". Dies wurde von mir getestet ( @alblue ) und der Beitrag wurde entsprechend aktualisiert (und dann wurden zusätzliche Aktualisierungen vorgenommen: siehe Revision 41 für den Beitrag, der bei Patch 54 endet ).
Viele zusätzliche Sicherheitslücken wurden gegen Bash gemeldet. Laut Michal Zalewskis Post, wenn Sie Patch 54 (und vermutlich Apples offiziellen Patch) haben, "hat es keinen Sinn, über den Status dieser einzelnen Bugs nachzudenken, da sie kein Sicherheitsrisiko mehr darstellen sollten:"
CVE-2014-6271 - Original RCE gefunden von Stephane. Korrigiert durch bash43-025 und entsprechende Einträge vom 24. September für andere Versionen.
CVE-2014-7169 - Fehler bei der Dateierstellung / beim Token-Verbrauch, der von Tavis gefunden wurde. Behoben von bash43-026 & co (26. September)
CVE-2014-7186 - Ein Absturz, bei dem Florian und Todd wahrscheinlich mehr als 10 Sekunden Risiko eingegangen sind. Behoben durch bash43-028 & co (1. Oktober).
CVE-2014-7187 - ein nicht abstürzender, wahrscheinlich kein Sicherheitsrisiko durch Florian. Behoben durch bash43-028 & co (1. Oktober).
CVE-2014-6277 - Nicht initialisiertes Speicherproblem, mit ziemlicher Sicherheit RCE von Michal Zalewski. Noch kein spezieller Patch.
CVE-2014-6278 - Befehlseinspritzung RCE gefunden von Michal Zalewski. Noch kein spezieller Patch.
Es wird ziemlich verwirrend. Glücklicherweise hat Chet Ramey, der offizielle Betreuer der Bash, einen CVE für das Patch-Mapping veröffentlicht . Sein Beitrag bezieht sich auf Patches für Bash 4.3. Ich (@OldPro) habe sie in Patches für Bash 3.2 übersetzt, was auch für OS X gilt. Seit diesem Beitrag hat er Patch 57 veröffentlicht, also habe ich Folgendes hinzugefügt:
Siehe David A. Wheelers Beitrag für eine Zeitleiste und detailliertere Informationen.
@alblue hat über Patch 55 Build-Anweisungen veröffentlicht. Ich (@OldPro) habe die Patches 56 und 57 zu den Anweisungen hinzugefügt, sie jedoch nicht getestet.
Testen auf die ursprüngliche Sicherheitsanfälligkeit
Sie können feststellen, ob Sie für das ursprüngliche Problem in CVE-2014-6271 anfällig sind, indem Sie diesen Test ausführen:
Die obige Ausgabe ist ein Beispiel für eine nicht anfällige
bash
Version. Wenn Sie das Wortvulnerable
in der Ausgabe dieses Befehls sehen, ist Ihrbash
anfällig und Sie sollten aktualisieren. Im Folgenden finden Sie eine anfällige Version von OS X 10.8.5:Testen auf die neue Sicherheitsanfälligkeit
Es wurde ein Update auf den Original - Beitrag 3.2.52 und Bash (1) ist nach wie vor anfällig für eine Variation der Verwundbarkeit, definierte in CVE-2014-7169
Die obige Ausgabe ist ein Beispiel für eine anfällige
bash
Version. Wenn Sie ein Datum in der Ausgabe dieses Befehls sehen, ist Ihrbash
anfällig.Deaktivieren von automatisch importierten Funktionen, um "Game Over" zu verhindern
Die Forscher stellten fest, dass ein Skript, ohne es als Sicherheitsanfälligkeit einzustufen, mithilfe von automatisch importierten Funktionen eine Funktion in einer Subshell hijacken kann:
Der obige Code auf einem betroffenen System würde
Game Over
anstelle der Verzeichnisliste angezeigt, die Sie von erwarten würdenls
. Offensichtlichecho 'Game Over'
könnte durch jeden schändlichen Code, den Sie wollen, ersetzt werden. Dies wurde als "Game Over" -Fehler bekannt.Vor der Verfügbarkeit von Patch 54 haben sowohl NetBSD als auch FreeBSD die Bash-Funktionen für den automatischen Import standardmäßig deaktiviert, teilweise um "Game Over" zu verhindern, hauptsächlich aber, um weitere Fehler im Parser (wie CVE-2014-7169 ) so wie sie waren zu enthalten weiterhin entdeckt und ein neues Kommandozeilen-Flag hinzugefügt
--import-functions
um das alte Standardverhalten wieder zu aktivieren. Ich (@alblue) habe einen Patch (gegen 3.2.53) vorbereitet, den andere verwenden können, wenn sie dieses Verhalten ebenfalls übernehmen möchten, und habe ihn unten aufgeführt. Standardmäßig ist dieser Patch im folgenden Build-Skript nicht aktiviert. Ich (@OldPro) halte diesen Patch nicht länger für notwendig oder für eine gute Idee, da er die Abwärtskompatibilität aufhebt und die Schwachstellen, vor denen er schützt, durch Patch 54 und frühere Patches sehr gut behoben werden. Wenn Sie diesen inoffiziellen Patch aktivieren, wird verhindert, dass zukünftige Patches angewendet werden .(Hinweis für fragende Redakteure; bitte aktivieren Sie dies nicht standardmäßig, da es sich um einen inoffiziellen Patch handelt.)
a0c5c4d66742fddd0a35001cb91798a5fbf8a2f5 import_functions.patch
Der Patch kann aktiviert werden, indem er ausgeführt wird,
export ADD_IMPORT_FUNCTIONS_PATCH=YES
bevor der Build ausgeführt wird. Beachten Sie, dass das Aktivieren dieses Patches Patch 54 und alle zukünftigen Patches deaktiviert, da nicht garantiert werden kann, dass zukünftige Patches mit dem inoffiziellen Patch kompatibel sind.Apple Patch hat eine Art Game Over-Schwachstelle
Wie von @ake_____ auf Twitter hervorgehoben, ist der offizielle Apple-Patch immer noch anfällig für das Aussterben von ausführbaren Dateien in der Umgebung:
Der Benutzer sollte selbst entscheiden, wie wichtig dies ist. Ich (@OldPro) denke, es gibt keinen Grund zur Sorge, da für dieses Verhalten kein Exploit bekannt ist (es wurde nicht einmal eine CVE-ID vergeben), da unprivilegierte entfernte Angreifer im Allgemeinen nicht den Namen einer Umgebungsvariablen festlegen können und Angreifer mit Berechtigungen dies nicht können Verwenden Sie dies, um Berechtigungen zu erlangen, die sie noch nicht haben (zumindest nicht ohne eine zusätzliche Sicherheitsanfälligkeit auszunutzen).
Um ein wenig Hintergrund zu bieten, können Sie mit bash Funktionen definieren und diese Funktionen über den
export -f
Befehl in Subshells exportieren . Dies wurde früher implementiert, indem eine Umgebungsvariable mit demselben Namen wie die Funktion erstellt wurde, deren Wert auf die Funktionsdefinition gesetzt wurde. DamitDies geschah, weil
export -f ls
eine Umgebungsvariable namens erstellt wurdels
. Die "Game Over" -Anfälligkeit bestand darin, dass Sie diese Umgebungsvariable direkt erstellen konnten, ohne zuvor die Funktion definieren zu müssen. Wenn Sie also den richtigen Variablennamen eingeben konnten, konnten Sie einen Befehl missbrauchen. Apple hat versucht, dieses Problem zu beheben, indem es schwierig war, eine Variable mit dem richtigen Namen zu erstellen. Der offizielle Bash-Patch 54 macht es tatsächlich unmöglich, eine Variable mit dem richtigen Namen zu erstellen, indem Variablennamen verwendet werden,%
die ein Zeichen enthalten, das in einem Variablennamen nicht zulässig ist, wodurch exportierte Funktionsdefinitionen effektiv in einen anderen reservierten Namespace verschoben werden.Wenn Ihnen keines der oben genannten Dinge Sinn macht, machen Sie sich darüber keine Sorgen. Der Apple-Patch ist vorerst in Ordnung.
System-Binärdateien
OS X 10.9.5 (die aktuellste stabile Version) wird mit Bash v3.2.51 ausgeliefert:
Sie können Bash wie folgt beziehen und neu kompilieren , sofern Sie Xcode installiert haben (und
xcodebuild
mindestens einmal ausgeführt haben, um die Lizenz zu akzeptieren):(Hinweis: Sie können dies ausführen, indem Sie den obigen Codeblock kopieren und einfügen, in Terminal gehen und dann ausführen
pbpaste | cut -c 2- | sh
. Seien Sie jedoch immer vorsichtig, wenn Sie zufällige Skripte aus dem Internet ausführen ...)Danach sollte die Bash-Version v3.2.57 sein:
Aus Sicherheitsgründen und nach dem Testen empfehle ich,
chmod -x
die alten Versionen zu verwenden, um sicherzustellen, dass sie nicht wiederverwendet werden, oder sie auf eine Sicherungssite zu verschieben.Andere Antworten bieten Lösungen für Benutzer von MacPorts oder Homebrew. Diese beheben das Problem nicht, sondern installieren lediglich zusätzliche Versionen von Bash. Bitte lesen Sie diese Antworten, wenn Sie diese speziell aktualisieren möchten.
Vielen Dank
Vielen Dank an Chet, der sich um Bash kümmert und diese Patches zur Verfügung stellt. Vielen Dank an alle anderen, die dies kommentiert und im Laufe der Zeit verbessert haben.
Jetzt hat Apple das echte Update veröffentlicht, obwohl dies immer noch nützlich sein könnte. Da sie nur ein Update für Lion und höher veröffentlicht haben und der offizielle Patch GNU Bash, Version 3.2.53 (1), zur Verfügung stellt (x86_64-apple-darwin13), ist der Game-Over-Bug immer noch etwas anfällig. Zu diesem Zeitpunkt ist es wahrscheinlich sicherer, eine eigene Version von Bash gegen 3.2.57 wiederherzustellen, als sich auf Apples Patch zu verlassen, es sei denn, Sie machen etwas falsch.
quelle
Macports
Damit erhalten Sie eine Bash-Version 4.3.28 (1), die sowohl Schwachstellen (CVE-2014-6271 und CVE-2014-7169) als auch einige später entdeckte Schwachstellen behebt. Dies ist nützlich, wenn Sie die Shells so geändert haben, dass Macports Bash verwendet wird, um die Funktionen von Version 4 zu erhalten.
Es wird das Problem von Standard-Betriebssystemskripten als have
#!/bin/sh
oder#!/bin/bash
als erste Zeile nicht lösen . Diese Art von Problem ist der Grund, warum Macports versucht, die von Apple bereitgestellten Programmversionen nicht zu verwenden, da Macports in der Regel schneller aktualisiert wird (z. B. eine neuere Version von bash).Sie können dies wie in der Homebrew-Antwort festlegen
So installieren Sie Macports folgen Sie diese Anweisungen , die
1. Installieren Sie Xcode und die Xcode Kommandozeilen - Tools
2. zu Xcode Lizenz im Terminal einig: sudo xcodebuild -license
3. Download MacPorts Pkg für Ihre Version von OS X: Links sind auf der Seite
4. Führe das Paket aus
Wenn Sie Macports installiert haben, benötigen Sie die neuesten Versionen
und kompilieren Sie oder erhalten Sie die neuesten Binärdateien von
quelle
bash
normalerweise unter OS X ausgeführt werden - also die System- Fehlerbehebung , die Homebrew- und die MacPorts- Fehlerbehebung . Möglicherweise auch Fink. Ich persönlich würde es vorziehen, wenn dies als Änderung an der Antwort von @ AlBlue vorgenommen würde. Es ist also alles eine, richtigste Antwort.HINWEIS zum offiziellen Apple OS X Bash-Update 1.0: Dieses Software-Update bringt nur die offizielle Apple Bash-Version auf 3.2.53. Die Patch-Revision 3.2.54 bietet die folgende Änderung:
Für Benutzer, die das System bereits mit 3.2.54-Binärdateien gepatcht haben, können Sie entweder Ihre kompilierten Binärdateien durch den Apple-Patch ersetzen oder die Dinge so lassen, wie sie sind, aber dies ist nicht ratsam. Obwohl Apple seine Binärversionierung bei 3.2.53 belassen hat, enthält der Apple-Patch die Korrektur für den folgenden Exploit-Test:
env X='() { (a)=>\' sh -c "echo date"; cat echo
Dies bedeutet, dass die offizielle Apple-Version 3.2.53 eine der Vanilla GNU-Version 3.2.54 entsprechende Sicherheit enthält. Ein unglücklicher Punkt der Verwirrung, aber es ist was es ist. Apples Verlegenheit ist nicht halb gebacken. Es scheint eine vollständige Lösung für das Problem zu sein. Daher sollte der unten stehende Fahrplan zum Kompilieren von Vanille
bash
undsh
aus GNU-Quellen als historisches Artefakt betrachtet und möglicherweise als Vorlage für zukünftige Patches herangezogen werden.HINWEIS: In Verbindung mit der Vanilla GNU-Quelle treten
sh
Probleme mit der Rechteerweiterung auf , die zu Fehlern bei verschiedenen Installationsprogrammen führen, z. B. Adobe Flash. Ich empfehle dringend, bei den mit Apple gepatchten Binaries zu bleiben. Betrachten Sie dieses Patch-Schema als veraltet und schlecht beraten.Es gibt einen neuen GNU Bash 3.2.55 Patch, der das folgende Update beschreibt:
Wir überlassen es dem aufmerksamen Leser, zu entscheiden, ob er sich an die offiziellen, von Apple gepatchten Binärdateien hält oder seine eigenen, um sich mit den neuen möglichen Exploits zu befassen. Persönlich werde ich mich an die Apple-Binaries halten.
Dieser Beitrag beschreibt , wie zu kompilieren und eine Vanille zu installieren
bash
undsh
auf OS X. wählte ich diese Route Beispielen wie folgt detailliert mit Apple-spezifischer Quelle habe mich nicht mit der richtigen Patch Revision verlassen. YMMV. Diese Vanille-Installation zielt jedoch darauf ab, die OS X-Binärdateien zu ersetzen, sodass diese Vanille-Ersetzungen von den entsprechenden Apple-Partnern übernommen werden, wenn Apple schließlich ein Sicherheitsupdate veröffentlicht.Meine Basiskonfiguration ist:
OS X Lion 10.7.5 und Xcode 4.6.3 mit allen installierten Befehlszeilenprogrammen.
Meine Schritte, um dies zu beheben, waren:
Laden Sie den Base-Bash-Quellcode für 3.2.48 herunter von:
https://ftp.gnu.org/gnu/bash/bash-3.2.48.tar.gz
Laden Sie die Patches bash3.2.49, .50, .51, .52, .53, .54 und .55 herunter von:
https://ftp.gnu.org/gnu/bash/bash-3.2-patches/
Ich habe sie als $ filename.patch gespeichert, zB bash3.2.50.patch.
CD in Ihr Download-Verzeichnis und…
Entpacke den Hauptquellzweig:
Angenommen, Sie haben Ihre heruntergeladenen Patch-Dateien wie oben beschrieben umbenannt.
Dann …
Dies sollte erfolgreiche Patches verschiedener Dateien anzeigen. Wenn nicht, bereiten Sie sich auf eine Erkundung und Untersuchung vor.
Nächster:
Das hat im Grunde genommen Ihre alten, verwundbaren Bash- und Shellsicherungen gesichert und ihre ausführbaren Berechtigungen entfernt. Dadurch haben Sie die Möglichkeit, die Befehle nach Bedarf wiederherzustellen, können jedoch in der Zwischenzeit keinen Schaden mehr anrichten.
Nächster:
Dies sollte die neue Bash-Binärdatei in / bin korrekt konfigurieren, kompilieren und installieren. Nachdem dies erledigt ist, beenden Sie das Terminal und öffnen Sie es erneut.
Sie sollten in der Lage sein, alle Dinge glücklich und lächelnd zu sehen
bash --version
und jetzt 3.2.55, zB:Die genaue Ausgabe im obigen Befehl hängt von Ihrer Version von OS X ab.
Sie sollten auch in der Lage sein, Ihre Sicherheitsanfälligkeit zu testen
bash
und festzustellen, dass sie in Ordnung ist.HINWEIS: Bisher haben wir nur Bash behoben, aber die
/bin/sh
ausführbare Datei befindet sich immer noch in ihrem anfälligen Zustand. Das reine Kopierenbash
aufsh
einem Linux- Computer ist eine Art, Dinge zu tun. Diesh
Implementierung von OS X weist jedoch einige Unterschiede aufbash
, sodass Sie den Compiler erneut verschieben möchten. Weitere Informationen darüber, wiebash
und welchesh
Unterschiede in OS X bestehen, finden Sie hier:https://apple.stackexchange.com/a/89327/91441
In deinem Download-Verzeichnis mache:
Öffnen Sie die Datei in Ihrem bevorzugten Editor
Makefile.in
und scrollen Sie zu Zeile 99. Wir werden die Programmzeile so ändern, dass die von uns ausgegebene Binärdatei nicht wie folgtsh
aussiehtbash
:Speichern Sie es und dann
Jetzt haben Sie
sh
fast genau so gebaut , wie es Apple tun würde.Ein letzter Hinweis: Auf einigen (allen?) Systemen scheint Apple die
bashbug
ausführbare Datei im Allgemeinen zu platzieren/usr/bin
. Unsere Kompilierung wird es hineingelegt haben/bin
. Also, die letzten Schritte hier:quelle
READLINE_LIB = /usr/local/lib/libreadline.a
eine saubere Kompilierung fest und führen Sie sie aus. Dann entfernen und kopieren Sie die neue Bash-Binärdatei auf/bin/bash
und/bin/sh
HISTORY_LIB = /usr/local/lib/libhistory.a
. Andernfalls wird bash dynamisch mit der / usr / local-Version von libhistory verknüpft.bash
sich irgendwie nicht verhalten würde, nur weil der Kernel anders ist. In jedem Fall halte ich meine Lösung für vorübergehend; Irgendwann wird Apple das Problem beheben und meine kompilierten Binärdateien werden ersetzt (das ist der Hauptgrund, warum ich überhaupt kompiliert habe/bin
.Für alle, die mit dem Kompilieren aus dem Quellcode zu kämpfen haben, hat Apple ab dem 29. September offiziell Patches für Mac OS X 10.9.5, 10.8.5 und 10.7.5 veröffentlicht:
quelle
Erstens führt das Patchen von bash und sh für diese Sicherheitsanfälligkeit wahrscheinlich dazu, dass einige Skripts auf Ihrem Mac beschädigt werden. Sie müssen dies wirklich nicht tun, es sei denn, Sie bieten Webdienste für das öffentliche Internet direkt von Ihrem Mac aus an. Wenn dies wirklich nicht erforderlich ist, warten Sie, bis ein offizielles Sicherheitsupdate von Apple vorliegt.
Im Folgenden finden Sie einige Anweisungen zur Durchführung dieses Updates mit Brew on Mavericks 10.9.
Stellen Sie zunächst sicher, dass Sie eine veraltete Bash verwenden:
Die aktuellste Bash ist 4.3.25
Wenn Sie Xcode nicht installiert haben, benötigen Sie die Xcode-Befehlszeilentools, die von installiert werden können
Oder über das Entwicklerportal .
So installieren Sie Brew ( http://brew.sh ):
Dann mach:
Befolgen Sie bei Problemen die Anweisungen. Viele häufige Probleme werden hier angesprochen .
Aktualisieren Sie dann brew auf die neueste Liste der Pakete:
So erhalten Sie die neueste Bash-Version 4.3.25:
Dies installiert Bash in
/usr/local/Cellar/bash/4.3.25/bin/bash
Das alte
bash
undsh
noch vorhandene at/bin
, so dass Sie nach der Installation die alten ausführbaren Dateien in eine neue Datei umbenennen.Wenn Sie sehr paranoid sind, können Sie die Ausführungsberechtigungen für das entfernen
bash_old
Erstellen Sie dann einen symbolischen Link zu der neuen Bash 4.3.25, die Sie installiert haben.
Starten Sie neu und es ist abgeschlossen.
Eine Warnung - Dies kann einige vorhandene Shell-Skripte beschädigen, die möglicherweise auf Bash 3.2 oder den Unterschieden beruhen, die der Mac
sh
gegenüber Linux aufweistsh
. Es gibt eine viel raffiniertere Antwort auf das Ersetzen von bash und sh aus Quellen, basierend auf einer Antwort von @TraneFranks in demselben Thread.quelle
/bin/bash
und dies/bin/sh
wird wahrscheinlich weniger Probleme verursachen als ein Upgrade auf Brews neueste Bash.OS X 10.6.8 - Snow Leopard
Der Beitrag von @AlBlue ist sehr vollständig. Auf meinem OS X 10.6.8-Server funktioniert sein Fix jedoch nicht. Apple hat keinen Fix für 10.6.8 und die von @AlBlue beschriebenen Schritte funktionieren nicht mit Xcode 3.2.6 (der neuesten Version für Snow Leopard). Ich erhalte einen Fehler:
Aus diesem Grunde bin ich mit brew.sh . Bitte kommentieren Sie Ihre Gedanken, wenn Sie eine bessere Lösung für OS X 10.6.8 Snow Leopard haben. Siehe auch den Kommentar von @Jerome, er hatte einen erfolgreichen Patch auf OS X 10.6.8 Snow Leopard mit der @ AlBlue-Lösung. Sowieso:
Installieren Sie zuerst das Gebräu mit dem folgenden Oneliner:
Aktualisieren
brew
Installieren Sie jetzt einfach die neueste Version von
bash
und ersetzen Sie die aktuelle:Sie können die Standardanmeldeshell '
Command (complete path)
' für die Terminal.app in ihren Einstellungen festlegen ( Command,)Hinweis: In den Kommentaren halten einige Benutzer diese Methode nicht für angemessen. Für mich ist dies jedoch die einzige nachvollziehbare Methode, um BASH unter OS X 10.6.8 Snow Leopard zu aktualisieren.
quelle
sh
auch - Sie müssen das auch tun./bin/sh
! =/bin/bash
. Viele Tools/bin/sh
funktionieren nur, wenn Sie Systembefehle ausführen. Rubyssystem()
Aufruf wird beispielsweise verwendet,/bin/sh
wenn Sie ein Shell-Erweiterungszeichen haben, das in der Zeichenfolge erweitert werden muss. Sie spielen ein verlorenes Spiel mit Homebrew, um Ihre System-Binärdateien zu aktualisieren. Sie sollten Homebrewsbash
zusätzlich zu einer ordnungsgemäßen Aktualisierung der System-Binärdateien aktualisieren.xcodebuild
. Wenn ja, habe ich das nicht erlebt. Ich habe ein paar solide Vorschläge, die Sie beiseite legen sollten: Überprüfen Sie, ob Sie mehrere Bash-Builds haben, überlegen Sie, ob Sie aufräumen (Deinstallation von Brew) und möglicherweise Xcode erneut installieren möchten ... und starten Sie dann den Patch-Prozess erneut.Sie können den Anweisungen hier folgen: https://github.com/tjluoma/bash-fix Grundsätzlich können Sie in einem Terminal Folgendes tun:
quelle