Jak odzyskać dane po „chown -R $ USER / usr /”?

2

Uruchomiłem „chown” na wszystko w katalogu / usr dla użytkownika innego niż root. Chciałbym uruchomić go dla / usr / local / Teraz pojawia się błąd poniżej przy otwieraniu terminalu

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]
Pete_ch
źródło
Możliwe duplikaty How-Can-i-Reset-My-Terminal ?
sameetandpotatoes
Pytanie
glenn jackman

Odpowiedzi:

4

Jeśli nie możesz przywrócić /usr/z kopii zapasowej, możesz najpierw uruchomić w trybie pojedynczego użytkownika (przytrzymując Command-S podczas uruchamiania) i uruchomić chown -R root /usr/.

Podczas mojej instalacji wszystkie pliki poniżej /usr/local/były własnością root lub ja, kilka plików poniżej /usr/było własnością _uucp, a wszystkie pozostałe pliki /usr/należały do ​​roota:

$ 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

Spowodowałoby to zmianę właściciela uucpplików:

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

/usr/local/nie istnieje w nowej instalacji OS X. Jeśli korzystasz tylko /usr/local/z Homebrew, możesz usunąć, /usr/local/a następnie ponownie zainstalować Homebrew.

Alternatywnie możesz użyć Pacifist, aby skopiować domyślną wersję /usr/z instalatora OS X pobranego z App Store. Wykonanie instalacji aktualizacji OS X z partycji odzyskiwania lub aktualizacji do wersji 10.9 może również przywrócić właścicieli niektórych plików.

Lri
źródło
Działa rozwiązanie w trybie pojedynczego użytkownika. Ale przed uruchomieniem Chown musiałem uruchomić mount -uw /, aby umożliwić modyfikację systemu plików, który w przeciwnym razie
byłby
2

Myślę, że jest to przypadek, w którym uprawnienia do naprawy faktycznie robią coś pożytecznego. Przywróci prawidłowe uprawnienia do wszystkich plików dostarczonych przez Apple, które, jak sądzę, są wszystkie oprócz tych w / usr / local Ten katalog zawiera elementy, które dodałeś, więc powinieneś być w stanie odtworzyć.

Aby naprawić uprawnienia Użyj narzędzia Disk Utility.app i wybierz dysk rozruchowy z listy dysków po lewej stronie. Będą przyciski do weryfikacji lub naprawy uprawnień do dysku.

znak
źródło
Mam wiele plików /usr/!(local)/, które nie były zawarte w systemie OS X: na przykład pliki, które zostały dodane przez pakiet narzędzi wiersza poleceń, pliki dodane przez instalatory MacTeX, Java i Haskell, a niektóre pliki binarne /usr/binzostały dodane przez sudo /usr/bin/gem install.
Lri
Istnieje powód, dla którego często sugeruje się, że nie należy dodawać plików w /usr/!(local)/Apple, aby zarządzać tym obszarem
Mark
A) Dlatego nie powinieneś instalować rzeczy w / usr / oprócz / usr / local / i B) Naprawa uprawnień jest nadal najlepszym rozwiązaniem, aby przywrócić system do działania.
TJ Luoma,