Bagaimana memulihkan dari "chown -R $ USER / usr /"?

2

Saya menjalankan 'chown' pada semua yang ada di bawah / usr ke pengguna non root. Dimaksudkan untuk menjalankannya untuk / usr / local / Sekarang saya mendapatkan kesalahan di bawah saat membuka terminal

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
sumber
Kemungkinan rangkap bagaimana-bisa-saya-reset-terminal-saya ?
sameetandpotatoes
Juga ditanyakan unix.stackexchange.com/q/91899/4667
glenn jackman

Jawaban:

4

Jika Anda tidak dapat memulihkan /usr/ dari cadangan, pertama-tama Anda dapat memulai dalam mode pengguna tunggal (dengan menahan perintah-S saat memulai) dan menjalankannya chown -R root /usr/.

Pada instalasi saya, semua file di bawah /usr/local/ dimiliki oleh root atau saya, beberapa file di bawah /usr/ dimiliki oleh _uucp, dan semua file lainnya di bawah /usr/ dimiliki oleh 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

Ini akan mengubah pemilik uucp file:

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

/usr/local/ tidak ada pada instalasi baru OS X. Jika Anda hanya menggunakan /usr/local/ dengan Homebrew, Anda mungkin menghapus /usr/local/ dan kemudian instal ulang Homebrew.

Atau, Anda bisa menggunakan Pasif untuk menyalin standar /usr/ dari penginstal OS X yang diunduh dari App Store. Melakukan peningkatan instalasi OS X dari partisi pemulihan atau meningkatkan ke 10.9 mungkin juga mengembalikan pemilik beberapa file.

Lri
sumber
Solusi mode pengguna tunggal berfungsi. Tetapi sebelum menjalankan chown, saya harus menjalankan mount -uw / untuk memungkinkan modifikasi sistem file yang hanya dapat dibaca
Pete_ch
2

Saya pikir ini adalah kasus di mana Izin Perbaikan benar-benar melakukan sesuatu yang bermanfaat. Ini akan mengembalikan izin yang benar ke semua file yang dipasok oleh Apple yang saya pikir semuanya kecuali yang ada di / usr / local Direktori itu berisi hal-hal yang Anda tambahkan dan jadi Anda harus bisa membuat ulang.

Untuk Memperbaiki Izin Gunakan Disk Utility.app dan pilih disk boot di daftar disk sebelah kiri. Akan ada tombol untuk Memverifikasi atau Memperbaiki Izin Disk.

Mark
sumber
Saya memiliki banyak file di bawah /usr/!(local)/ yang tidak disertakan dengan OS X: misalnya file yang ditambahkan oleh paket Alat Baris Perintah, file yang ditambahkan oleh pemasang untuk MacTeX, Java, dan Haskell, dan beberapa biner di /usr/bin yang ditambahkan oleh sudo /usr/bin/gem install.
Lri
Ada alasan mengapa sering disarankan agar Anda tidak menambahkan file /usr/!(local)/ Apple harus dibiarkan mengelola area itu
Mark
A) Itu sebabnya Anda tidak harus menginstal sesuatu ke / usr / kecuali / usr / local / dan B) Izin Perbaikan masih merupakan taruhan terbaik Anda untuk membuat sistem Anda bekerja kembali.
TJ Luoma