Grup üyelerinin bir dizindeki herhangi bir dosyaya yazmasına izin vermek için setfacl kullanma


12

Setfacl'ı kullanmak istiyorum, böylece 'app' grubundaki herkes / usr / local / users / app içindeki herhangi bir dosyayı geleneksel UNIX izinlerinin ne dediğine bakılmaksızın düzenleyebilir. İki kullanıcı john ve ben var. Başka bir sorudan talimatı takip etmeye çalıştım , ancak john bazı dosyalara yazamıyor. Bunun nedeni acl maskesi yüzünden. Ancak, rwx dizininde varsayılan maskeyi ayarladım, bu yüzden içindeki dosyalar oluşturulduğunda bunu miras almamalıdır?

Örneğin, john aşağıdaki dosyaya yazamaz, ancak dosyaya yazma acls sahip 'app' grubunun bir üyesidir, bu yüzden dosyayı düzenleyemediğine şaşırdım.

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
-rw-r--r--+ 1 ben users 38326 Apr  2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar

ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/
# file: app-1.0-SNAPSHOT/lib/
# owner: ben
# group: users
user::rwx
group::rwx          #effective:r-x
group:app:rwx       #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:app:rwx
default:mask::rwx
default:other::r-x

ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
# file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar
# owner: ben
# group: users
user::rw-
group::rwx          #effective:r--
group:app:rwx       #effective:r--
mask::r--
other::r--

Yanıtlar:


7

Getfacl'in size atıldığı "etkili" yorumu fark edeceksiniz. Sorun, "uygulama" yazma biti ayarını alamayacak şekilde izinlerin hesaplanmasıdır. Bunun nedeni, dosyadaki maske salt okunur olarak ayarlanmış olmasıdır. Maske, belirli bir dosya veya dizinde verilebilecek izinlerin miktarını sınırlamak için kullanılır.

Dosyanın ona erişmek için farklı kullanıcılara / gruplara yasal olarak ihtiyaç duyabileceğini bilseniz, bu davranışın neden olmasını isteyeceğinize bir örnek olabilir, ancak bazı nedenlerden dolayı izinlerle karmaşıklaşıyor ve "Diğeri ne olursa olsun" varsayılan izinler, grup üyelikleri ne olursa olsun veya daha sonra yinelenen setfacl çalıştırılırsa, KESİNLİKLE BUNU VERMEYİN ! " Sahip olan kullanıcının POSIX dünyasında özel bir durumu vardır, diğer kullanıcıların sahip olmadığı, bir dosyada kök olmayan olma ve izinleri değiştirme ve maske tarafından sınırlandırılmamış hakları gibi haklara sahiptir. Sistemin onlara verdiği ilk imtiyaz nedeniyle zaten anlamsızdır). Bu yüzden maske kısıtlanmış olsa bile rwx alırlar.

Yine de özel sorunuza cevap vermek için : dosyadaki maskeye yazma bitini ekleyin ve johnkullanıcı olarak tekrar deneyin .

Burada "etkili" haklar tüm ı ise Modifiye maske olduğunda nasıl değiştiğini dikkate alması, yukarıdaki açıklama bir komut satırı versiyonu.


Teşekkür ederim. Cevabı gerçekten takdir ediyorum. Yeni dosyaların varsayılan rwx maskesi ile oluşturulması mümkün müdür? Sorumu birkaç ayrıntıyla daha düzenledim.
Ben McCann

Evet, maske varsayılan bir EKL ayarlayabileceğiniz kategorilerden biridir (kullanıcılar ve gruplar gibi). Varsayılan maske alt dizinlere miras almalı ve dosyalara uygulanmalıdır. ÖRNEK: setfacl -md: m :: rwx / yol / / / Dir
Bratchley

Varsayılan ACL alt dizinlere miras alır, ancak dosyalara değil, ACL'leri tamamen işe yaramaz hale getirir :-(
Ben McCann

Aynı şeyden bahsettiğimizden emin olmak için maske girişi için varsayılan acl'den mi bahsediyorsunuz? Testlere giriyorum.
Bratchley

Ayrıca üst dizindeki etkili maskeyi değiştirdikten ve aynı sonucu aldım / testBed içinde yeni dosyalar için yukarıdaki testi tekrarladım (varsayılan maske girişi, ebeveynin etkili maskesine değil, dosyaya uygulanır).
Bratchley

0

Bu imkansız. cp, rsync vb. varsayılan ACL'leri yok sayan dosyalar oluşturur

CP neden ACL'lere saygı duymuyor?


yanlış Kullanıcı, daha önce karşılaştığınız aynı maske olayında çalışıyordu ve bir başkasından yanlış yanıt aldı. Cp dosyayı oluşturmaya gittiğinde dosya sistemi düzeyinde gerçekleşen varsayılan ACL girdilerini yoksaymak "cp" ya da başka bir yardımcı program değildir. Araç, gerekli ACL'leri şeritlemek / eklemek için sistem çağrılarını düzenleme seçeneğine sahiptir, ancak bunu yapmak için çaba sarf etmek gerekir.
Bratchley

Cehennem, ACL girişini konuştuklarını görebiliyorsunuz, sadece orada olmasını bekledikleri etkili izinler. "Hey dostum, maskeni kontrol et" demek için mükemmel bir fırsattı.
Bratchley

1
Aslında, maske hakkında yayınlanan EvilRyry geri görünüyor ve OP sadece "işe yaramadı" ile geri cevap sonra "felles" dosya rwx aldığını göstermek gibi görünüyor getfacl çıktı gönderdi. Bu oranda, en yüksek oyu alan cevap kişisel deneyimimle ve burada komut örnekleriyle gösterdiğim şeyle uyuşmuyor.
Bratchley
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.