Bagaimana cara mendapatkan setfacl untuk mengatur izin ACL secara rekursif di Linux?

20

Saya sedang menyiapkan server baru dan ingin memberikan ACL kesempatan atas chown: chgrp: izin gaya chmod.

Halaman manual untuk setfacl menunjukkan bahwa opsi '-R' dapat digunakan untuk mengatur ACL secara rekursif pada file dan direktori.

-R, --recursive Menerapkan operasi ke semua file dan direktori secara rekursif. Opsi ini tidak dapat dicampur dengan '--restore'.

Jika tata letak direktori saya terlihat seperti ini

test/
   subtest/
   subtest.txt

dan saya mengeksekusi

setfacl -Rm d:u:foo:rwX test

ACL berlaku pada direktori 'subtest', tetapi bukan file subtest.txt.

Saya pikir saya dapat menggunakan find + exec untuk mengatasinya, tetapi saya berencana menggunakan server ini untuk melatih beberapa admin lainnya dan saya ingin menjaganya sesederhana mungkin sehingga kami tidak terpaku pada beberapa yang lebih canggih konvensi.

Terima kasih

Joe Holloway
sumber

Jawaban:

43

Mencoba:

setfacl -Rm u:foo:rwX,d:u:foo:rwX test

untuk memodifikasi ACL saat ini dan juga default. Saya percaya "d:" hanya memengaruhi (d) efault ACL dari direktori dan membiarkan file tidak tersentuh. Kemudian, jika Anda membuat file baru di direktori, itu mewarisi ACL dari direktori induknya melalui default.

Dijeda sampai pemberitahuan lebih lanjut.
sumber
Itu masuk akal meskipun rasanya agak berlebihan
Joe Holloway
1
Apakah ini berfungsi untuk menghapus kontrol akses juga. Mungkin sesuatu dengan efek: sudo setfacl -Rx g: gid path
mengapa mengubah tempat antara bendera -Rdan -mmelanggar perintah?
pkaramol
@ pkaramol: Karena -mopsi mengambil argumen (spec ACL u:foo:rwX,d:u:foo:rwXdalam kasus ini) dan mengalihkan urutan opsi memisahkan opsi dari argumennya. Mungkin juga yang setfacldiberi kode untuk mengharapkan opsi utamanya terlebih dahulu.
Dijeda sampai pemberitahuan lebih lanjut.