Wie erholt man sich von „chown -R $USER /usr/“?

Ich habe einen 'Chown' für alles unter /usr für einen Nicht-Root-Benutzer ausgeführt. Soll es für /usr/local/ ausführen. Jetzt erhalte ich den folgenden Fehler beim Öffnen des Terminals

login(89809,0x7fff7bac5960) malloc: *** error for object 0x7fc7cb500b40: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

[Process completed]
Mögliches Duplikat von how-can-i-reset-my-terminal ?

Antworten (2)

Wenn Sie nicht /usr/von einem Backup wiederherstellen können, können Sie zuerst im Einzelbenutzermodus starten (indem Sie beim Start Befehl-S gedrückt halten) und ausführen chown -R root /usr/.

/usr/local/Bei meiner Installation gehörten alle Dateien darunter entweder root oder mir, einige Dateien darunter /usr/gehörten _uucp, und alle anderen Dateien darunter /usr/gehörten root:

$ sudo find /usr/local ! -user root ! -user $USER
$ sudo find /usr/!(local) ! -user root -print0|xargs -0 stat -f '%Su %N'
_uucp /usr/bin/cu
_uucp /usr/bin/uucp
_uucp /usr/bin/uuname
_uucp /usr/bin/uustat
_uucp /usr/bin/uux
_uucp /usr/sbin/uucico
_uucp /usr/sbin/uuxqt
_uucp /usr/share/uucp

Dies würde den Eigentümer der uucpDateien ändern:

sudo chown _uucp /usr/bin/{cu,uucp,uuname,uustat,uux} /usr/sbin/{uucico,uuxqt} /usr/share/uucp

/usr/local/existiert bei einer Neuinstallation von OS X nicht. Wenn Sie nur /usr/local/Homebrew verwendet haben, können Sie /usr/local/Homebrew löschen und dann neu installieren.

Alternativ können Sie Pacifist verwenden , um die Standardeinstellung /usr/von einem OS X-Installationsprogramm zu kopieren, das aus dem App Store heruntergeladen wurde. Eine Upgrade-Installation von OS X von der Wiederherstellungspartition oder ein Upgrade auf 10.9 kann auch die Eigentümer einiger Dateien wiederherstellen.

Die Lösung im Einzelbenutzermodus hat funktioniert. Aber bevor ich chown ausführte, musste ich mount -uw / ausführen, um die Änderung des ansonsten schreibgeschützten Dateisystems zu ermöglichen

Ich denke, dies ist ein Fall, in dem Reparaturberechtigungen tatsächlich etwas Nützliches tun. Es stellt die korrekten Berechtigungen für alle von Apple bereitgestellten Dateien wieder her, von denen ich denke, dass sie alle außer denen in /usr/local sind. Dieses Verzeichnis enthält Dinge, die Sie hinzugefügt haben, und Sie sollten in der Lage sein, sie neu zu erstellen.

So reparieren Sie Berechtigungen: Verwenden Sie Disk Utility.app und wählen Sie die Boot-Festplatte in der Liste der Festplatten auf der linken Seite aus. Es wird Schaltflächen zum Überprüfen oder Reparieren von Festplattenberechtigungen geben.

Ich habe viele Dateien darunter /usr/!(local)/, die nicht in OS X enthalten waren: zum Beispiel Dateien, die vom Command Line Tools-Paket hinzugefügt wurden, Dateien, die von den Installern für MacTeX, Java und Haskell hinzugefügt wurden, und einige Binärdateien, die /usr/binvon sudo /usr/bin/gem install.
Es gibt einen Grund, warum oft vorgeschlagen wird, dass Sie keine Dateien in /usr/!(local)/Apple hinzufügen sollten, um diesen Bereich zu verwalten
A) Deshalb sollten Sie nichts nach /usr/ außer /usr/local/ installieren und B) Berechtigungen reparieren ist immer noch die beste Wahl, um Ihr System wieder zum Laufen zu bringen.