İlk olarak, neler olduğunu açıklamak için bir miktar arka plan: OS X'deki dosyalar kendilerine uygulanan oldukça farklı iki tür izin ayarlarına sahip olabilir: POSIX ve ACL'ler.
Dosyaların her zaman (neredeyse, her zaman) sahibi, grubu ve diğerlerinden oluşan (her biri için bir okuma, yazma ve yürütme kombinasyonuyla) POSIX izinleri uygulanır. POSIX izinlerinin mirasını kontrol etmenin bir yolu yoktur: Yeni öğeler her zaman, kullanıcının oluşturduğu her bir kullanıcıya aittir, grup ataması, içinde bulundukları klasörden miras alınır ve erişim, umask tarafından belirlenir (hemen hemen her zaman: sahibi tam erişime sahip, grup ve diğerleri salt okunur + klasörler için çalıştır). Yani POSIX izinleri yapmaya çalıştığınız şey için işe yaramaz.
Dosyalarda uygulanan bir erişim kontrol listesi (ACL) de olabilir. Bu, her biri bir kullanıcı veya grup için geçerli olan erişim kontrol girişlerinin (ACE) bir listesidir, erişim türlerini (ayrıntılı olarak) belirtir, izin verilip verilmediğini veya reddedilip alınmadığını ve ACE'nin de kopyalanıp kopyalanmayacağını belirtir. klasörün içinde oluşturulan öğeler. Bu son bit, bunu sizin için yararlı kılan kısımdır; İstediğiniz grubu, istediğiniz erişim türlerini ve tam mirasını belirten klasörde bir ACE oluşturmanız gerekir.
OS X'deki chmod, ACE'leri + a, -a, etc izinleri seçenekleriyle değiştirebilir. Ne istediğinizi anlarsam, bunu ACE oluşturmak için kullanırsınız (grup adınız ve klasör yolunuz değiştirilir):
chmod +a "group:examplegroup allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder
Kalıtımın "canlı" olmadığını, yani ACE'yi atamadan önce oluşturulan öğelere uygulanmadığını ve başka bir yerde oluşturulan ve daha sonra klasöre taşındığını unutmayın. -R ( chmod -R +a ...
) kullanarak onu mevcut içeriğe uygulayabilirsiniz . Klasöre taşınan öğelere miras almayı zorlamanın bir yolunu (Apple'ın sunucu yöneticisi araçları hariç) bilmiyorum.