Alat pembangun · Kalkulator Chmod
Model kebenaran Unix: dari 1970-an chmod kepada POSIX bit mod
· Latar belakang
chmod unix kawalan akses
Pemilik/group/others model telah bertahan selama beberapa dekad dengan sedikit perubahan. Siaran ini mengesan dari mana ia datang, perkara yang POSIX diseragamkan dan sebab ia masih sesuai dengan kebanyakan pekerjaan.
Reka bentuk 1970-an dalam penggunaan 2020-an anda — setiap bekas dan pelari CI masih bercakap rwx, dan ia membantu untuk mengetahui sebabnya
Arahan semasa masih menampilkan mod seperti 0644 dan rentetan simbolik seperti rw-r--r--, tetapi repositori ini bukan arkib sejarah. Buktinya ialah perwakilan yang dilaksanakan: dua belas bit, penukaran deterministik, dan pengesahan input oktal dan simbolik. Tarikh, pencipta, paten dan tuntutan tentang setiap sistem terbitan Unix memerlukan sumber yang tidak dibekalkan di sini.
Oleh itu kalkulator menawarkan pandangan masa kini bagi model kebenaran padat. Satu integer memacu pemilik, kumpulan dan kawalan lain serta setuid, setgid dan sticky. Output boleh disemak dalam bentuk perlapanan, simbolik dan matriks. Perjanjian membuktikan penukaran yang konsisten, bukan asal, kesejagatan atau penguatkuasaan model.
Notasi jangka panjang muncul dalam penggunaan semasa, tetapi repositori ini bukan sumber sejarah
Sembilan bit biasa membentuk tiga kelas yang sama. Pemilik, kumpulan dan yang lain masing-masing menerima kedudukan baca, tulis dan laksana dengan pemberat 4, 2 dan 1. Kalkulator menyimpan tertib itu di mana-mana: dalam tiga digit perlapanan di belakang, baris simbolik sembilan aksara, matriks kotak semak dan penerangan bahasa Inggeris biasa yang dijana untuk fail atau direktori.
Mod 640 menunjukkan struktur tanpa tuntutan keturunan. Pemilik 6 bermaksud baca dan tulis, kumpulan 4 bermaksud baca, dan 0 lain bermaksud tiada kebenaran biasa, menghasilkan rw-r-----. Seperti yang dijelaskan oleh artikel 501, ini adalah bendera yang boleh dikira; mengenal pasti pemilik, kumpulan atau proses sebenar kekal di luar penukaran.
Model yang dilaksanakan mempunyai sembilan bit biasa dalam tiga kelas
Setuid dilaksanakan sebagai topeng 4000. Pada fail biasa, pemapar meletakkan s dalam kedudukan laksana pemilik apabila kedua-dua setuid dan eksekusi pemilik hadir. Jika setuid hadir tanpa pemilik execute, ia meletakkan S di sana sebaliknya, mengekalkan perbezaan penting antara bit khas dan bit execute biasa di bawahnya.
Perihalan fail menerangkan huruf kecil sebagai pelaksanaan dengan identiti pemilik fail dan menandakan gabungan huruf besar sebagai tiada apa-apa untuk dijalankan. Kenyataan tersebut menerangkan output pelaksanaan ini. Repositori tidak membekalkan rekod paten atau sejarah utama, jadi bahagian ini tidak mengaitkan mekanisme atau tarikh pengenalannya.
tingkah laku setuid dilaksanakan; sejarah paten tidak diperolehi
Penjelasan direktori menggunakan nilai angka yang sama tetapi kata kerja yang berbeza untuk bit biasa. Baca entri senarai, tulis sampul membuat, menamakan semula dan memadam entri, dan laksanakan sampul yang memasuki direktori dan mencapai kandungan yang dinamakan. Pelaksanaan juga menerangkan setgid pada direktori sebagai menyebabkan fail yang baru dicipta untuk mewarisi kumpulan direktori itu.
Sticky diwakili oleh 1000 dan menduduki kedudukan pelaksanaan yang lain sebagai t atau T. Untuk direktori, alat ini menerangkan pemadaman terhad untuk entri dikongsi. Ini dilaksanakan semantik yang dibentangkan oleh kalkulator; tiada sejarah cawangan atau keturunan silang sistem ditubuhkan, dan tiada sistem fail langsung ditanya untuk mengesahkan tingkah laku setempat.
Tingkah laku bit khas direktori diterangkan tanpa tuntutan keturunan
Sumber menamakan setiap topeng secara langsung: 0400, 0200 dan 0100 untuk pemilik; 0040, 0020 dan 0010 untuk kumpulan; 0004, 0002 dan 0001 untuk yang lain. Setuid, setgid dan sticky menambah 4000, 2000 dan 1000. Penukaran adalah ujian bit dan gabungan bitwise dan bukannya daya tarikan kepada standard luaran.
Peraturan input adalah sama konkrit. Octal menerima satu hingga empat digit daripada 0 hingga 7, dengan borang pendahuluan 0 atau 0o pilihan. Input simbolik menerima sembilan kedudukan atau sepuluh dengan aksara jenis fail yang diiktiraf. Repositori tidak menetapkan bahawa setiap pelaksanaan atau piawaian menerima tatabahasa permukaan yang sama dengan tepat.
Topeng bit bernama dan semantik penukaran disahkan; tuntutan piawaian sejagat tidak
Model kompak mempunyai had yang disengajakan. Ia menyediakan satu kelas pemilik, satu kelas kumpulan dan satu kelas lain, tetapi tiada kemasukan pengguna bernama, entri kumpulan bernama, topeng ACL atau ACL lalai. Ia juga tidak mempunyai set keupayaan. Mekanisme tersebut tidak boleh disimpulkan daripada rentetan rwx yang nampaknya biasa atau penukaran oktal yang berjaya.
Penjanaan arahan tidak mengembangkan model. Ia mengeluarkan hujah oktal atau klausa u=, g=, dan o= eksplisit, menambah u+s, g+s atau +t apabila diperlukan. Hasilnya kekal teks yang dipaparkan. Semakan yang bertanggungjawab mengumpulkan sebarang ACL, keupayaan, pemilikan dan bukti penguatkuasaan secara berasingan sebelum menganggap mod sebagai akaun kawalan akses yang lengkap.
ACL dan keupayaan berada di luar model mod yang dilaksanakan
Set sumber ini tidak mengandungi perbandingan yang disokong dengan Windows, VMS, Plan 9 atau sejarah kebenaran sistem pengendalian yang lain. Meninggalkan naratif tersebut adalah lebih tepat daripada mengemukakan kontras yang diingati sebagai fakta. Kalkulator sahaja menunjukkan perwakilan mod yang dilaksanakannya dan ujiannya boleh mewujudkan tingkah laku penukaran dan bukannya evolusi sistem yang tidak berkaitan.
Perhatian yang sama berlaku untuk bahasa keserasian yang luas. Watak jenis fail terkemuka yang diiktiraf boleh dihuraikan sebelum sembilan kedudukan kebenaran, tetapi itu tidak membuktikan pemformatan ls universal. Gunakan output sebagai bacaan tepat bagi notasi yang diterima alat ini, kemudian rujuk dokumentasi platform berwibawa untuk tingkah laku melangkaui sempadan yang disokong sumber ini.
Sejarah kebenaran sistem pengendalian lain ditinggalkan tanpa sumber
Apa yang kekal dalam penelitian di sini ialah kekompakan model yang dilaksanakan. Dua belas bit yang dinamakan meliputi tiga kelas kebenaran biasa dan tiga bendera khas, manakala pandangan perlapanan dan simbolik mendedahkan integer yang sama dalam bentuk yang berbeza. Angka yang tidak sah atau huruf simbolik yang salah letak ditolak dan bukannya dibaiki secara senyap, menjadikan ralat kelihatan semasa penukaran.
Itu sudah cukup untuk pengambilan praktikal tanpa pelajaran sejarah. Nyahkod mod, periksa setiap kelas, dan perhatikan sama ada s, S, t atau T menggantikan kedudukan laksana. Kemudian berhenti di tempat bukti berhenti: kalkulator menerangkan perwakilan dan teks yang dijana, manakala pemilikan, dasar, gelagat sistem fail dan asal sejarah memerlukan sumber lain.