Alat pembangun · Kalkulator Chmod
chmod pada Windows, macOS, FAT dan perkongsian rangkaian: tempat bit mod berhenti
· Latar belakang
chmod unix kawalan akses
Bit mod ialah idea Unix, dan sistem fail lain sama ada memalsukannya atau menggugurkannya. Siaran ini merangkumi perkara yang berlaku kepada kebenaran pada lekapan NTFS, FAT, macOS dan SMB atau NFS dan cara git bertindak balas.
Git menunjukkan setiap fail sebagai diubah suai — satu-satunya perubahan ialah mod 100644 kepada 100755 selepas pengklonan pada sistem fail yang berbeza
Perubahan Git daripada 100644 kepada 100755 mendedahkan satu perbezaan biasa: 644 tidak dapat dilaksanakan, manakala 755 menyertakannya untuk ketiga-tiga kelas. Menyahkod nilai trailing menghasilkan rw-r--r-- dan rwxr-xr-x. Kalkulator tidak dapat menjelaskan mengapa Git melaporkan perubahan itu, platform yang menghasilkannya, atau sama ada tetapan sistem fail dan repositori mempengaruhi pemerhatian.
Gunakan penukar sebagai penyahkod neutral sebelum menukar dasar. Masukkan 644 dan 755, bandingkan setiap kotak laksana dan sahkan output simbolik. Laluan pilihan sahaja mempengaruhi teks arahan yang dipaparkan; tiada yang dibaca dari cakera. Dengan tiada penghuraian Git atau akses metadata, halaman mewujudkan makna mod tetapi bukan niat projek atau kuasa kebenaran.
Perubahan mod dalam Git boleh dinyahkodkan di sini tetapi tidak dikaitkan dengan platform
Tingkah laku Windows ACL memerlukan sumber yang tiada di sini. Kalkulator memodelkan satu kelas pemilik, satu kelas kumpulan, semua orang lain dan tiga bit khas. Ia tidak mewakili entri akses Windows, warisan, identiti atau sintaks. Garis besar tersebut menyebut metadata WSL, tetapi bahan repositori yang dibekalkan tidak mendokumentasikan satu pun, jadi tuntutan platform yang terperinci akan melebihi bukti yang tersedia.
Notasi simbolik kekal sebagai aritmetik yang berguna walaupun storan menggunakan model lain. Penghurai menerima sembilan aksara kebenaran, secara pilihan dengan penanda jenis yang diiktiraf, mengesahkan setiap kedudukan dan menukarnya kepada satu integer. Ia tidak boleh menyatakan sama ada Windows atau WSL berterusan, mensintesis atau mengabaikan nilai tersebut. Rujuk dokumentasi platform yang bertanggungjawab sebelum menggunakan arahan yang dipaparkan.
Tingkah laku metadata Windows ACL dan WSL memerlukan sumber platform
FAT-topeng pelekap keluarga berada di luar pelaksanaan ini. Panel tidak mempunyai umask, fmask, dmask, mount-option atau medan sistem fail. Ia boleh membahagikan mod yang dilaporkan kepada pemilik, kumpulan dan bit lain, tetapi tidak boleh memperoleh mod itu daripada konfigurasi atau membuktikan cara FAT atau exFAT menghasilkannya. Tuntutan tingkah laku yang lebih luas memerlukan sumber platform luaran.
Ikut arahan yang disokong oleh bukti. Dapatkan mod berkesan daripada pemerhatian sistem yang boleh dipercayai, kemudian masukkannya dan periksa bendera baca, tulis dan laksana yang diwakili. Ringkasan empat digit mendedahkan bit khas yang dibekalkan juga. Jangan terbalikkan aritmetik itu kepada diagnosis pelekapan: integer tidak merekodkan asal, dan halaman tidak menanyakan storan.
FAT-topeng pelekap keluarga berada di luar pelaksanaan
Metadata macOS tambahan tidak dihuraikan oleh laluan ini. Input simbolik menjangkakan sembilan kedudukan kebenaran, secara pilihan didahului oleh aksara jenis fail yang diiktiraf. Ia tidak menerima petunjuk mengekor, tidak membaca entri atau bendera ACL dan tiada pertanyaan metadata laluan. Mod rwx asas boleh dinyahkod secara berasingan, tetapi setiap isyarat macOS tambahan kekal di luar sumber ini.
Memandangkan 755 yang bersih, kalkulator memaparkan rwxr-xr-x dan menerangkannya untuk sasaran yang dipilih. Laksana direktori bermaksud memasukkan dan mencapai entri yang dinamakan; file execute bermaksud menjalankan program. Perbezaan bersandarkan pelaksanaan itu kekal pada atribusi platform. Sebarang peraturan akses macOS tambahan, tatatanda atau interaksi dengan bit mod memerlukan bukti khusus yang tidak tersedia dalam bahan repositori ini.
Metadata macOS tambahan tidak dihuraikan oleh laluan ini
SMB dan NFS pemetaan identiti atau sintesis mod terletak di luar pelaksanaan. Penukar tidak menghubungi pelayan, tidak membaca konfigurasi pelekap, menyelesaikan tiada UID dan tidak boleh mengenal pasti pemilik atau kumpulan. Kelasnya ialah slot abstrak yang diperoleh daripada integer. Mod yang dilaporkan oleh lekapan rangkaian kekal boleh dinyahkod, tetapi tingkah laku sistem fail rangkaian yang terperinci tidak disokong di sini.
Sempadan ini menghalang ralat kategori. Mod 775 bermaksud pemilik dan kumpulan mempunyai rwx manakala yang lain mempunyai r-x. Ia tidak mendedahkan pemilikan jauh, keahlian kumpulan, pemetaan identiti atau sama ada pelayan mensintesis paparan. Sahkan bit yang dibentangkan di sini, kemudian kumpulkan bukti eksport, klien, pelayan dan identiti daripada persekitaran sebenar sebelum memutuskan kebenaran.
SMB dan NFS identiti atau sintesis mod berada di luar pelaksanaan
Apabila Git melaporkan perubahan mod, nyahkod nilai sebelum menyemak dasar. Untuk 100644 dan 100755, gunakan 644 dan 755: rw-r--r-- menjadi rwxr-xr-x. Pemilik, kumpulan dan yang lain masing-masing mendapat laksana kerana digit mereka memperoleh berat 1. Ini mewujudkan perbezaan semantik tanpa memberikan sebab kepada Git, platform atau sistem fail.
Tentukan niat daripada bukti projek yang tidak mengandungi sumber ini. Kalkulator tidak boleh membaca core.fileMode, menghuraikan .gitattributes, memeriksa indeks atau memutuskan sama ada keadaan boleh laku adalah berwibawa. Perintah berasaskan laluannya kekal tidak dilaksanakan. Bawa perbezaan rwx yang disahkan ke dalam semakan repositori, kemudian tukar dasar sahaja selepas mengenal pasti sumber kebenaran yang dimaksudkan.
Contoh berfungsi: menyahkod mod laporan Git sebelum menukar dasar repositori
Perintah kebenaran Windows tergolong dalam model yang berasingan. Alat ini mengeluarkan bentuk chmod seperti nilai perlapanan atau u=rw,g=r,o=r. Ia tidak menghuraikan sintaks Windows mahupun memetakan tiga kelas Unix ke Windows ACL. Mana-mana terjemahan yang kelihatan munasabah akan menjadi ciptaan, kerana dua belas bit tradisional tidak dapat mengekalkan setiap identiti dan kemasukan akses yang diwakili oleh sistem kebenaran lain.
Keizinan storan objek adalah sama berasingan. Kalkulator sahaja menerima mod tradisional dan tidak pernah menghubungi perkhidmatan, membaca dasar baldi atau mengendalikan identiti objek. Gunakannya apabila nilai perlapanan atau simbolik gaya Unix sebenar memerlukan penyahkodan. Untuk storan objek dan model lain, periksa data dasar asli dan dokumentasi dan bukannya memaksa mereka ke dalam tatatanda chmod.
Sintaks Windows dan storan objek kekal sebagai model yang berasingan
Sahkan lapisan mana yang memiliki kebenaran kebenaran sebelum menggunakan chmod. Mod yang dibentangkan oleh Git, pelekap atau platform lain boleh diterjemahkan kepada pemilik, kumpulan, bit lain dan khas. Pengesahan menangkap digit yang cacat dan kedudukan simbolik, manakala s, S, t dan T mengekalkan keadaan istimewa. Penukaran menerangkan nilai, bukan asal atau kuasanya.
Semakan akhir harus memisahkan aritmetik daripada persekitaran. Sahkan mod, rekod kelas dan bit berbeza yang tepat, dan kenal pasti sasaran sebagai fail atau direktori. Kemudian periksa platform, sistem fail, tetapan repositori, identiti, ACL dan dasar dengan sumber asli. Peranan sempit halaman adalah berharga: tafsiran mod Unix yang boleh dipercayai tanpa berpura-pura mendiagnosis penguatkuasaan merentas platform.