linux / setfacl - Üst dizindeki tüm geçerli / gelecekteki dosyaları / dizinleri belirtilen sahip / grup ile 775 olarak ayarlayın


42

"Üyeler" adında bir dizin var ve altında klasörler / dosyalar var. Tüm mevcut klasörleri / dosyaları ve bunlar için varsayılan olarak oluşturulacak gelecekteki klasörleri sırasıyla 775 izinli ve sahip / gruba hiç kimseye / admin'e ait olmadan tekrarlı olarak nasıl ayarlayabilirim? ACL'yi etkinleştirdim, monte ettim ancak setfacl komutunu doğru şekilde yapamıyorum. Bunun nasıl başarılacağı hakkında bir fikrin var mı?

Yanıtlar:


62

Aslında şu ana kadar istediğim şeyi yapan bir şey buldum, burada paylaşarak bu konuda çalışan herkes bu çözümü deneyebilir:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

R özyinelemelidir, bu, bu dizindeki her şeyin kendisine uygulanan kurala sahip olacağı anlamına gelir.
d varsayılandır, yani bu dizin altında oluşturulan gelecekteki tüm öğeler için bu kuralların varsayılan olarak uygulanması gerekir. Kural eklemek / değiştirmek için m gereklidir.

İlk komut, yeni öğeler (bu nedenle d), ikinci komut ise klasörün altındaki eski / mevcut öğeler içindir. Umarım bu şeyler biraz karmaşık olduğundan ve çok sezgisel olmadığı için birine yardımcı olur.


2
Yeni torun dizinlerinin içeriğini uygun şekilde değiştirebilmek için büyük bir dizinin sahibine sahip olmak için gereken tam olarak buydu.
Joost

Rpi'nizin tek kullanıcısıysanız, g: groupname yerine pi: pi veya sadece pi
SDsolar ile 11:30

Örneğin, kullanıcı, gruplar ve diğerlerini bir satırda belirtebilirsiniz -Rdm g:groupnamehere:rwx, -Rdm u:groupnamehere:rwx.
user2340939,

18

Kabul edilen cevabını almak için ...

Bu komutları bir arada olarak birleştirebilirsiniz:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/

Çok havalı. Neden d:ilk maddeden ziyade geldin -Rmd? İkinci parametrenin olmaması gerektiğini söyleyebilirim default- linux'un bunu bana kabul etmesi garip.
JREAM

1
@JREAM: Linux (aslında getopt_long) bütün argüman gönderir seçeneği-m olan elle ayrıştırılır tarafından setfacl, virgülle ayırarak geçti argümanlar. ACL'yi değiştirirken, sonunda ilmekli bir bağlı listeye eklenirler.
Benoit Duffez

2

Linux üzerinde setfacl, muhtemelen aradığın varsayılan izinleri değiştirmek için -dve -kseçeneklerine sahiptir (daha fazla bilgi için adama bakınız).


1

Uygun UNIX izinlerini, uygun şekilde yetkilendirilmiş bir kullanıcının talebi üzerine, dizinlerin ve dosyaların izinlerini tekrar tekrar ayarlamak kolaydır. Bunu otomatik olarak uygulamak mümkün değildir.

Kullanıcılara 0002 kümesini kullanmalarını ve bu uygulamanın 0775'te (uygulamaya bağlı olarak) yeni dosyalar oluşturmasına yardımcı olabilir. Ancak uygulanabilir değildir.

Anladığım kadarıyla, ACL'lerin UNIX / Linux sistemlerinde miras alınmaması. Talep üzerine ayarlanır.

Dosya / dizin sahipliğine gelince, burada pek şansınız yok.

Dosya / dizin grubu sahipliğine gelince, set-gid dizinini ayarlayarak (yani, DIRECTORIES üzerindeki g + s), bu, grup sahipliğinin kalıtımsal kalmasına neden olur.

Bu gibi durumlarda yaptığım şey, bu gibi dizinlerdeki standartlara uygun olmayan izinleri / mülkiyeti sıfırlayan periyodik bir kök cron betiği çalıştırmaktır.

Bir başka (ÖNERİLEN DEĞİL) işlem, bu dosyalar üzerinde çalışırken aynı kullanıcı kimliğinin kullanılmasıdır. Bu, kullanıcının kendi kullanıcı kimliği altında sisteme giriş yapması ve ardından kimliği olarak çalıştırmak için sudo veya su kullanarak gerçekleştirilebilir. Bu hala özellikle EKL ve izin bitleri ile ilgili% 100 değildir.

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.