Mengapa semuanya diatur ke tidak berubah dan bagaimana cara membalikkannya?

2

Sepertinya saya tidak dapat mengubah izin (apalagi menghapus) apa pun di direktori /usr/local (yang seharusnya saya). Penelitian saya menunjukkan bahwa itu karena OSX secara otomatis mengatur semuanya agar tidak berubah. Saya dapat mengatasi masalah saya dengan mem-boot ke mode single-user dan partisi ulang dengan -uw. Dari sana saya bisa menggunakan chflags untuk menghapus keabadian.

Namun, saya BENAR-BENAR ingin tidak harus melakukan ini setiap waktu. Apakah ada cara saya dapat menonaktifkan immutability secara global di seluruh sistem? Apakah ada alasan saya tidak seharusnya?

n0pe
sumber
Saya pikir Anda harus mulai dengan mencari tahu mengapa seluruh sistem file Anda ditandai tidak dapat diubah. Apakah itu terjadi secara berulang? Apakah Anda memiliki pesan di salah satu log Anda? Sudahkah Anda mencoba menjalankan Perbaikan Izin dari Disk Utility? Sudahkah Anda mencoba mengatur ulang izin direktori rumah ?
D.W.
@ D.W. jadi, saya terus menggali lebih dalam. Ternyata di suatu tempat di telepon seorang pengguna baru disebut root dibuat di sistem saya. Saya harus memaksa uid=0 pada pengguna itu. Sekarang semuanya berjalan jauh lebih lancar. Meski kekekalan masih menarik. Adakah alasan mengapa OSX melakukannya seperti itu?
n0pe
OS X tidak melakukannya dengan cara seperti itu - sesuatu yang lain melakukannya (dan mungkin juga membuat akun root palsu), dan Anda harus melakukan beberapa pemecahan masalah / isolasi kesalahan untuk mencari tahu apa itu. BTW, pengguna root yang Anda sebutkan: apakah itu selain akun root normal, atau apakah itu hanya mengacaukan akun root normal?
Gordon Davisson

Jawaban:

1

Pengguna root harus selalu dapat mengubah izin pada sistem file. Saya percaya hal-hal yang dibuat abadi secara default untuk membantu menghindari footgun oleh orang-orang yang mencoba menyalin / menempelkan sesuatu dari Internet. Membutuhkan kata sandi root dapat memberi orang jeda, atau setidaknya memberi mereka gagasan bahwa mengubah file di / usr / lokal secara acak mungkin bukan ide yang baik.

Homebrew, manajer paket Mac, membuat / usr / local dapat ditulis untuk dapat menginstal paket dari web tanpa perlu menggunakan sudo perintah setiap waktu. Ini menjalankan dua perintah berikut untuk mencapai itu:

sudo chmod 775 /usr/local
sudo /usr/bin/chgrp "admin" /usr/local/<unwritable directories/files below this>
Kevin Burke
sumber