Sudo, El Capitan'daki / usr / bin dosyasında dosya oluşturamıyor


14

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?

resim açıklamasını buraya girin


OS X El Capitan köksüzdür. Özellik, kurtarma bölümünden devre dışı bırakılabilir.
fd0

Yanıtlar:


17

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+Rbaş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


1
Devre dışı bıraktım ve hala hiçbir şey yapmama izin vermiyor:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Roberto

İle deneyin sudo.
Ragnar

Çoğu durumda, yerel özelleştirmeleri / usr / local'a (örn. / Bin veya / usr / bin yerine / usr / local / bin) yüklemek daha iyidir. Bunun için var, ve uzun zamandır durum böyleydi. Mümkünse, SIP'yi devre dışı bırakmak yerine bu en iyi uygulamayı izlemenizi tavsiye ederim. Kısıtlı bir yerde gerçekten değişiklik yapmanız gerekiyorsa, SIP'yi devre dışı bırakmak, değişikliği yapmak ve ardından SIP'yi csrutil enable(Kurtarma modunda) hemen yeniden etkinleştirmek en iyisidir .
Gordon Davisson

3

Ragnar tarafından belirtildiği gibi , /usrdizin, 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.


2

Belirli bir dosya veya dizinin OSX'in Sistem Bütünlüğü Koruması (SIP) / Köksüz tarafından -Okı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 .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.