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?
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.
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.
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.
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.
ls -l
saya hanya akan melihat izin posix dan ACL yang membatasi file lebih lanjut tidak akan ditampilkan? Atau akankah izin posix dihormati?ls -l
letakkan a+
di akhir karakter izin untuk menunjukkan bahwa ACL ada. Jika ACL hadir maka izin dasar tidak menceritakan kisah lengkapnya: ACL mengesampingkan izin POSIX.+
setidaknya berhenti saya dari mendapatkan diriku lengahIzin 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
chmod
perintah 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.sumber
ls -l
?ls
memiliki tambahan+
di akhir, atau jalankangetfacl
perintah untuk menampilkan semua izin termasuk ACL.getfacl myFile
?