Perbedaan antara chmod vs ACL

13

Saya mengerti chmoddan chowndan bagaimana bit izin bekerja, tetapi ada sistem izin lain di dalam Linux, ACLdengan setfacldan getfacl, jadi ini membuat saya bertanya-tanya.

Apa perbedaan antara kedua sistem kontrol izin itu? Apakah mereka saling mengganggu?

mFeinstein
sumber

Jawaban:

7

Yang satu tidak lebih baik dari yang lain, mereka hanya metode dan cara berpikir yang berbeda.

Anda dapat menggunakan kedua sistem izin di jalur yang sama tanpa masalah.

Mereka saling mengganggu ketika memodifikasi pemilik, memiliki grup dan izin lainnya: ketika mengatur nilai saat ini dari setfacl, itu sebenarnya akan mengatur izin posix, bukan ACL.

Izin Posix hanya memperbolehkan pemilik, memiliki grup dan izin "semua orang" sementara ACL membolehkan beberapa pengguna dan grup "memiliki". ACL juga memungkinkan pengaturan izin default untuk file baru di folder.

Anda dapat menambahkan lebih banyak manajemen izin di atas keduanya dengan apparmor atau selinux untuk kontrol yang lebih ketat.

Zulgrib
sumber
1
Apakah saya benar mengasumsikan bahwa ketika saya menjalankan ls -lsaya hanya akan melihat izin posix dan ACL yang membatasi file lebih lanjut tidak akan ditampilkan? Atau akankah izin posix dihormati?
mFeinstein
3
@ mFeinstein Tergantung. Di Linux, ls -lletakkan a +di akhir karakter izin untuk menunjukkan bahwa ACL ada. Jika ACL hadir maka izin dasar tidak menceritakan kisah lengkapnya: ACL mengesampingkan izin POSIX.
Gilles 'SO- stop being evil'
Oh bagus! Itu +setidaknya berhenti saya dari mendapatkan diriku lengah
mFeinstein
3

Izin Unix klasik yang ditetapkan oleh chmod (baca / tulis / eksekusi, pengguna / grup / lainnya) telah ada jauh lebih lama daripada ACL. Jika ACL sudah ada sejak awal maka tidak akan ada chmod seperti yang kita tahu. Namun, karena chmod telah ada sejak lama, banyak aplikasi menyebutnya, banyak format arsip mendukung izin klasik, dll. Anda dapat mengekspresikan izin chmod dengan ACL; mereka bertindak sebagai semacam titik awal untuk ACL.

Lihat Precedence dari pengguna dan pemilik grup dalam izin file dan Precedence dari ACLS ketika pengguna milik beberapa kelompok untuk perlakuan yang lebih rinci tentang bagaimana kontrol akses bekerja di hadapan ACL.

The chmodperintah juga mengontrol beberapa bendera yang tidak benar-benar hak akses, namun sering disebut izin tetap: setuid, setgid dan sedikit lengket . Ini tidak benar-benar izin karena mereka tidak mempengaruhi akses mana yang diotorisasi pada file, tetapi bagaimana operasi tertentu pada file bekerja setelah mereka diotorisasi. Tidak ada yang seperti ini dengan ACL.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Jadi untuk benar-benar memahami izin file, saya harus memeriksa ACL dan ls -l?
mFeinstein
Apakah ada cara untuk melihat apakah ada izin khusus ACL pada file / direktori?
mFeinstein
@ mFeinstein Lihat apakah izin ditampilkan oleh lsmemiliki tambahan +di akhir, atau jalankan getfaclperintah untuk menampilkan semua izin termasuk ACL.
Gilles 'SO- stop being evil'
1
Adil getfacl myFile?
mFeinstein
1
Ya, dapatkan jalur yang ingin Anda periksa.
Zulgrib