Pertanyaan linux / setfacl - Atur semua direktori / direktori saat ini / mendatang di direktori induk ke 775 dengan pemilik / grup tertentu


Saya memiliki direktori bernama "anggota" dan di bawahnya ada folder / file. Bagaimana saya bisa secara rekursif mengatur semua folder / file saat ini dan setiap file yang dibuat di sana secara default memiliki 775 izin dan milik pemilik / grup tidak ada / admin masing-masing? Saya mengaktifkan ACL, terpasang, tetapi tidak bisa mendapatkan perintah setfacl untuk melakukan ini dengan benar. Adakah ide untuk mencapai ini?


33
2017-11-02 17:37






Jawaban:


Saya benar-benar menemukan sesuatu yang sejauh ini melakukan apa yang saya minta, berbagi di sini sehingga siapa pun yang mengalami masalah ini dapat mencoba solusi ini:

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

R bersifat rekursif, yang berarti segala sesuatu di bawah direktori itu akan memiliki aturan yang diterapkan padanya.
d adalah default, yang berarti untuk semua item yang dibuat di masa depan di direktori tersebut, aturan ini berlaku secara default. m diperlukan untuk menambahkan / mengubah aturan.

Perintah pertama, adalah untuk item baru (karena itu d), perintah kedua, adalah untuk item lama / yang ada di bawah folder. Semoga ini bisa membantu seseorang karena hal ini agak rumit dan tidak terlalu intuitif.


49
2017-11-03 16:36



Ini adalah apa yang saya butuhkan untuk mendapatkan pemilik direktori kakek-nenek untuk dapat memodifikasi konten direktori cucu baru dengan benar. - Joost
Jika Anda adalah satu-satunya pengguna Rpi Anda, Anda dapat mengganti g: nama grup dengan pi: pi atau hanya pi - SDsolar


Untuk pergi dengan jawaban yang diterima ...

Anda dapat menggabungkan perintah-perintah itu bersama-sama sebagai:

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

12
2018-05-20 15:05



Itu keren. Bagaimana Anda mengaturnya d: pada item pertama daripada -Rmd? Saya dapat mengatakan bahwa parameter kedua seharusnya tidak default- itu hanya aneh bagaimana linux menerimanya kepada saya. - JREAM
@ JREAM: Linux (sebenarnya getopt_long) mengirim seluruh argumen ke pilihan -m yang mana diurai dengan tangan oleh setfacl, memisahkan dengan koma argumen yang berlalu. Mereka ditambahkan ke daftar tertaut yang dilingkarkan pada akhir ketika benar-benar mengubah ACL. - Benoit Duffez


setfacl di linux memiliki -d dan -k pilihan untuk memanipulasi izin default yang mungkin apa yang Anda cari (lihat man untuk info lebih lanjut).


2
2017-11-02 19:12





Sangat mudah untuk secara rekursif mengatur izin UNIX sederhana di atas permintaan pengguna yang berwenang, hak akses direktori dan file. Tidak mungkin memaksakan ini secara otomatis.

Anda dapat memberi tahu pengguna untuk menggunakan set umask 0002, dan itu membantu untuk membuat file baru di 0775 (tergantung pada aplikasinya). Tetapi itu tidak dapat dilaksanakan.

Pemahaman saya adalah ACL tidak diwariskan pada sistem UNIX / Linux. Mereka diatur sesuai permintaan.

Adapun kepemilikan file / direktori, Anda cukup banyak beruntung di sini.

Sedangkan untuk kepemilikan grup file / direktori, dengan mengatur bit set-gid direktori (yaitu g + s pada DIRECTORIES), ini menyebabkan kepemilikan grup diwarisi.

Apa yang saya lakukan dalam situasi seperti itu adalah menjalankan skrip cron root periodik yang me-reset perizinan / kepemilikan yang tidak sesuai dengan standar dalam direktori tersebut.

Proses lain (TIDAK DIREKOMENDASIKAN) adalah memiliki id-pengguna yang sama digunakan ketika bekerja pada file-file ini. Ini dapat dilakukan oleh pengguna yang masuk ke sistem di bawah UID-nya sendiri, dan kemudian menggunakan sudo atau su untuk menjalankan sebagai id. Ini masih belum 100% terutama menyangkut ACL dan izin bit.


1
2017-11-02 17:56