Evet, ACL: ler farklı kullanıcılar veya gruplar için farklı hakların özgürce ayarlanmasına izin verir. IIRC olağan grup izinleri, grupların ve kullanıcıların ACL: s (olduğu gibi gösterilir ) aracılığıyla sahip olabileceği izinler kümesini mask
sınırlar getfacl
, ancak setfacl
izinler eklerseniz bununla ilgilenmelidir.
Ancak bazı durumlarda izin kümesinin herhangi bir anlam ifade edip etmediğini sormanız gerekir.
Bu istenen izinlere sahip 3 kullanıcı var ....
- user1 rwx
- user2 rw_
- user3 r__
Bunu, kullanıcı1'i dosyanın sahibi, kullanıcı2'yi grubun üyesi yaparak ve kullanıcı3 dahil olmak üzere diğerlerinin okuma erişimine izin vererek ACL: s veya (yaklaşık olarak) normal Unix izinleriyle uygulayabilirsiniz. Yine de herkes (dizine erişimi olan) da okuma erişimine sahip olacaktır.
Bu izinlerin anlamını düşünelim. Bir kullanıcının okuyabildiği, diğerinin okuyabildiği ve yazabildiği bir kullanıcınız var. Bu tamamen olağan. Bunların hiçbirinin dosyayı yürütme erişimi yoktur, ancak üçüncü bir kullanıcının da bunu yapması gerekir.
Aklımda bu pek mantıklı değil. Dosyayı okuyabilen herhangi bir kullanıcı, orijinal dosyayı yürütmek için erişim olmadan bir kopya (*) oluşturabilir, yürütülebilir olarak işaretleyebilir ve çalıştırabilir. Bazı kullanıcılar için erişim izni vermenin diğer kullanıcılar için değil, çalıştırılması mantıklı olan tek durum, yürütülebilir dosyanın intihar yoluyla ayrıcalıklarını yükseltmesidir. Ancak durum böyleyse, dosyaya yazma erişimi olan başka kullanıcılara da sahip olmamalısınız.
Aynı anlamda, -wx
user4 ile ve user5 ile --x
benim için bir anlam ifade etmiyor. Yalnızca ekleme işlemine izin verme olasılığı varsa, yalnızca yazma erişimi mantıklı olabilir , ancak izin sistemi bu kadar ayrıntılı değildir.
(* hiçbir yere yazamazlarsa)
Yine de, x
bit için garip gereksinimi kaldırırsak, user1 ve user2'nin yazma erişimine sahip olması ve user3'ün okuma erişimine sahip olması gereken bir dosya bırakılır. Bir yazar ve birden fazla okuyucu geleneksel modelle kolay olurdu, ancak bu durumda dosya izinlerini içeren dizinin izinleriyle birleştirmek için püf noktalarına ihtiyaç duyacaktır. Neyse ki, çoğu durumda daha fazla izne sahip bir kullanıcı yeterlidir.
Yürütme bitindeki gereksinim olmadan, ACL: s kullanmak için bir durum gibi görünür. Ama bununla birlikte, bu özel örnek bana oldukça kıvrımlı görünüyor.