Pada awalnya saya membuat file dan memeriksa izin standar dan entri ACL:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
Lalu saya mengatur topeng ACL pada file dan kembali memeriksa izin standar dan entri ACL:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
Perhatikan bahwa bersama dengan izin grup standar ACL mask pada file juga berubah.
- Koneksi apa yang ada antara ACL mask dan izin grup standar?
- Apa alasan untuk memasangkan izin ACL mask dan grup file? Logika apa yang ada di baliknya?
Distribusi yang dimaksud adalah Debian Linux 7.6 dan CentOS 7
EDIT
Pada titik ini saya hanya ingin membagikan beberapa temuan saya yang saya temukan ketika meneliti hubungan antara izin grup file standar dan topeng ACL. Berikut adalah pengamatan empiris yang saya temukan:
Masker ACL dapat diubah:
- dengan langsung mengaturnya dengan
setfacl -m m:<perms>
perintah; - dengan mengubah izin grup file dengan
chmod
perintah (jika ACL mask sudah ada; mungkin tidak ada karena opsional jika tidak ada nama pengguna atau grup ACL izin pada file); - dengan menambahkan entri nama pengguna atau ACL grup (mask akan dihitung ulang secara otomatis).
- dengan langsung mengaturnya dengan
Mask akan memberlakukan hak akses maksimum (jika ada entri ACL dengan izin hadir yang melebihi izin mask ACL) hanya jika mask diatur secara langsung oleh setfacl atau dengan modifikasi izin grup file dengan chmod (tidak dihitung secara otomatis). Setiap perubahan pada entri ACL akan memicu perhitungan ulang ACL mask otomatis dan secara efektif mematikan "mode penegakan".
Ada beberapa efek samping yang secara implisit mempengaruhi izin grup file standar saat menggunakan ACL:
- Entri yang dimasukkan pengguna atau grup ACL yang diterapkan ke file dapat mengubah topeng ACL (meningkatkan izinnya) dan karenanya izin grup file yang efektif. Misalnya, jika Anda, sebagai pemilik file, memiliki izin "rw-r - jim students" di atasnya dan Anda juga memberikan izin rw kepada pengguna "jack", Anda juga secara implisit akan memberikan izin rw kepada siapa pun. dari kelompok "siswa".
- Lebih keras (kurang izin) ACL mask dapat secara permanen menghapus izin grup file standar yang sesuai. Misalnya jika Anda memiliki file dengan izin grup file standar rw dan Anda menerapkan masker ACL hanya-baca ke file itu, izin grupnya akan berkurang menjadi hanya-baca. Kemudian jika Anda menghapus semua entri ACL yang diperluas (dengan
setfacl -b
perintah), izin grup akan tetap hanya-baca. Ini hanya berlaku untuk ACL mask yang lebih ketat, ACL mask yang lebih lembut (lebih banyak izin) tidak secara permanen mengubah izin grup file asli setelah dihapus.
sumber
Jawaban:
Tidak masuk akal jika izin file unix tidak setuju dengan entri acl dan sebaliknya. Dengan demikian, halaman manual (
acl(5)
) mengatakan apa yang Anda minta:Tambahan dalam menanggapi diskusi:
Penjelasan yang bagus ada di sini . Intinya topeng adalah
sumber
chmod
perintah untuk mengubah izin standar dan sebaliknya ketika Anda mengeksekusi, katakanlahgetfacl -m u:someuser:rwx
, izin file standar untuk pemilik file akan berubah dan perubahan akan tercermin dalamls -l
output. Itu semua benar, tetapi saya tidak melihat bagaimana itu menjawab pertanyaan saya-rw-r--r-- 1 user user
izin awal , yang bernama ACL pengguna akan diterima, dan ACL mask (bersama dengan izin grup file) akan diubah menjadi rwx juga. --- [lihat komentar selanjutnya sebagai kelanjutan]-rw-rwxr-- 1 user user
izin baru file atau tidak? Bagaimana Anda menentukan kontradiksi? Dengan membandingkan izin ACL penguji dengan izin grup file standar? Logika apa yang mengarahkan Anda untuk membandingkan izin grup dengan izin pengguna? Bukankah mereka entitas yang berbeda? Bukankah itu berlawanan dengan intuisi? Mungkin jelas bagi Anda, tetapi saya masih berjuang untuk memahami itu.Saya akhirnya mengerti apa yang sebenarnya terjadi ketika saya melihat tautan ini Menangani ACL
Secara khusus, topeng itu pada dasarnya menggantikan, dan berfungsi untuk menggantikan PENGGUNA NAMED dan semua izin GROUP. Ini berarti jika Anda:
Semoga ini bisa membantu.
sumber
Logikanya benar-benar rusak dan karena itu POSIX ACL murni dan tidak berguna.
Jika mereka bertujuan untuk menjaga kompatibilitas dengan aplikasi yang tidak memiliki gagasan tentang ACL kecuali model "ugo" UNIX primitif
standar, mereka sebenarnya gagal pada awalnya karena sekarang setiap aplikasi yang menghapus izin grup secara efektif menarik akses yang ditambahkan oleh ACL.sumber