Dün El Capitan'a geçtim ve yakın zamana kadar phpbrew'i yüklemeye çalıştığım gibi (sudo ofc ile) / usr / bin üzerinde bir şey yazamadığımı fark eden her şey iyiydi.
Buna ne neden olabilir ve nasıl giderilir?
Dün El Capitan'a geçtim ve yakın zamana kadar phpbrew'i yüklemeye çalıştığım gibi (sudo ofc ile) / usr / bin üzerinde bir şey yazamadığımı fark eden her şey iyiydi.
Buna ne neden olabilir ve nasıl giderilir?
Yanıtlar:
OSX 10.11'den bu yana, Apple güvenlik sistemini güçlendirdi. Sistem Bütünlüğü Koruması olarak adlandırılan Apple kilitler:
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
Bu güvenlik özelliğini devre dışı bırakmak için bilgisayarınızı yeniden başlatmanız ve CMD+R
başlangıçta OS X Kurtarma Moduna önyükleme yapmanız gerekir .
Sonra OS X Utilities > Terminal
Komutu yazın csrutil disable; reboot
Bilgisayarınız yeniden başlatılır. Desactivation hakkında bir onay mesajı göreceksiniz.
CRS türünün durumunu doğrulamak için csrutil status
/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
sudo
.
csrutil enable
(Kurtarma modunda) hemen yeniden etkinleştirmek en iyisidir .
Ragnar tarafından belirtildiği gibi , /usr
dizin, sistem tarafından kilitlenir /usr/local
. Ardından, senaryonuz izin veriyorsa, simgesel bağlantıyı eklemenizi tavsiye ederim /usr/local/bin
. Kullanmayla ilgili katı bir gereksiniminiz yoksa /usr/bin
, "İşleme izin verilmiyor" hatasıyla çalışmanın bir yolu budur.
Belirli bir dosya veya dizinin OSX'in Sistem Bütünlüğü Koruması (SIP) / Köksüz tarafından -O
kısıtlanıp kısıtlanmadığını, ls seçeneğini kullanarak dosya bayraklarını listeleyerek doğrulayabilirsiniz (örneğin / içindeki hangi dizinlerin kısıtlandığını görmek için):
ls -Ol /
SIP tarafından kontrol edilen dizinler veya dosyalar 'kısıtlı' olarak gösterilir.
SIP / köksüz ile ilgili bu sorunun cevaplarında tam ayrıntılar var .