Alat pengembang · Kalkulator Chmod
Cara membaca izin ls -l dan mengubahnya ke mode oktal
· Cara kerjanya
chmod unix alur kerja pengembang
String sepuluh karakter di awal ls -l adalah tipe file ditambah sembilan bit izin. Posting ini menunjukkan cara memecahkan kodenya dan menghasilkan mode oktal yang diinginkan chmod, termasuk huruf bit khusus.
Tiket dengan -rw-r-----+ ditempelkan — Anda perlu tahu apakah akan memberitahu pengguna untuk menjalankan chmod 640 atau yang lainnya
String yang ditempel seperti -rw-r-----+ berisi lebih dari yang dapat diterima parser ini. Inti yang dikenali adalah badan izin sembilan karakter, yang secara opsional didahului oleh satu karakter jenis file yang didukung. Trailing plus membuat input terlalu panjang dan ditolak. Menghapus penanda eksternal itu akan meninggalkan -rw-r-----, yang mengkonversi menjadi 640: grup pemilik read/write, telah dibaca, dan tidak ada izin untuk yang lain.
Konversi tersebut tidak menguraikan apa yang diwakili oleh tanda plus di luar peringatan artikel 501 bahwa daftar panjang dapat menggunakannya untuk ACL. Kalkulator tidak memiliki ACL entri atau topeng. Itu juga tidak memeriksa mesin tiket, pemilik, grup, atau jalur. Oleh karena itu, mode 640 adalah nilai izin dasar yang diwakili oleh inti yang diterima, bukan jawaban lengkap tentang akses efektif.
Karakter pertama adalah tipe — tanda hubung, d, l, c, b, p dan s, dan mengapa itu bukan bagian dari mode
Karakter opsional pertama diperlakukan sebagai penanda tipe dan bukan sebagai bit izin. Parser mengenali -, d, l, b, c, p, s, D, dan ?. Ketika satu muncul sebelum sembilan posisi izin yang sah, maka dihapus untuk aritmatika. Pemilik, grup, dan tripel lainnya yang dihasilkan menentukan nilai oktal dan pilihan matriks.
Perilaku ini mudah diverifikasi dengan masukan yang setara. Baik rwxr-x--- dan -rwxr-x--- menghasilkan 750 karena tanda hubung terdepan tidak menyumbangkan sedikit pun mode. Penanda direktori dapat mendahului isi yang sama dan tetap menghasilkan bilangan bulat yang sama. Pemilih target mengontrol kata-kata penjelasan secara terpisah, jadi menerima karakter tipe tidak berarti browser telah menemukan atau membuka objek tersebut.
Sembilan karakter dalam tiga grup — pemilik, grup, lainnya, selalu dalam urutan rwx, dengan tanda hubung untuk setiap bit yang tidak aktif
Sembilan posisi izin membentuk tiga rangkap tiga tetap dalam pemilik, grup, dan tatanan lainnya. Dalam setiap triple, read menempati posisi pertama, write kedua, dan mengeksekusi ketiga. Tanda hubung berarti bit yang bersangkutan tidak aktif. Validasi khusus posisi menolak huruf yang salah letak dan bukannya menebak, sehingga r pada posisi tulis tidak bisa diam-diam menjadi izin lain.
Masing-masing peta rangkap tiga yang diterima menjadi satu digit oktal berdasarkan bobot dalam artikel 501: baca adalah 4, tulis adalah 2, dan eksekusi adalah 1. Matriks menunjukkan tanda yang sama dengan kotak centang dan membangun kembali bilangan bulat ketika ada perubahan. Huruf khusus hanya diterima pada posisi eksekusi, mempertahankan setuid, setgid, atau sticky bersama dengan status eksekusi yang mendasarinya.
Contoh yang dikerjakan: -rwxr-x--- hingga 750 — menugaskan 4, 2, 1 ke setiap huruf dan menjumlahkannya per kelompok
Konversikan -rwxr-x--- dengan mengabaikan penanda tipe utama dan membagi isi menjadi rwx, r-x, dan ---. Pemilik memiliki 4+2+1, memproduksi 7. Grup memiliki 4+1, memproduksi 5. Lainnya tidak memiliki bit yang diaktifkan, menghasilkan 0. Kalkulator mengembalikan 750 dan memilih sembilan kotak izin biasa yang cocok.
Pemeriksaan sebaliknya harus dilakukan pada badan teks yang sama. Masukkan 750 dan bidang simbolis menjadi rwxr-x---; pilih penanda file biasa untuk formulir yang ditampilkan dan itu menjadi -rwxr-x---. Pratinjau tugas memiliki sintaks yang berbeda: u=rwx,g=rx,o=. Ketiga pandangan tersebut menggambarkan satu modus yang tetap, sementara kepemilikan dan kebijaksanaan penerapannya masih belum terselesaikan.
Tanda plus dan at di akhir — + berarti entri ACL ada, @ berarti atribut yang diperluas di macOS, tidak ada yang menjadi bagian dari mode
Tanda plus dan at di akhir adalah penanda metadata dalam kerangka, tetapi fakta yang diterapkan lebih sempit: parser ini menolak karena masukan yang diterima berakhir setelah badan izin. Artikel 501 secara khusus mengidentifikasi trailing plus dengan ACL. CHMOD_SOURCES tidak memberikan interpretasi yang setara untuk tanda, jadi bagian ini tidak menetapkan makna sistem operasi yang tidak didukung oleh repositori.
Jangan hapus penanda secara membabi buta ketika akses yang efektif penting. Sebaliknya, pisahkan inti sembilan atau sepuluh karakter yang diterima untuk konversi mode dasar dan selidiki sisanya dengan bukti dari sistem asal. Kalkulator dapat menunjukkan bahwa rw-r----- berarti 640. Ia tidak dapat menjelaskan metadata tambahan, membaca atribut yang diperluas, atau menentukan apakah mekanisme kontrol akses lain mengubah apa yang dapat dilakukan pengguna atau proses.
Tanda plus dan at di akhir adalah penanda metadata yang ditolak parser ini
Perintah stat eksternal tidak dijalankan oleh kalkulator browser. Halaman ini tidak memiliki pelari perintah atau akses sistem file; bidang jalurnya hanya ada untuk membuat teks chmod yang dikutip untuk ditampilkan. Akibatnya, ia tidak dapat mengambil mode saat ini, membandingkan keluaran perintah spesifik platform, atau menyatakan bahwa string yang ditempelkan berasal dari utilitas tertentu. Pengguna harus memberikan nilai untuk dikonversi.
Setelah mode tepercaya disediakan, browser menyediakan pemeriksaan representasi independen. Masukkan inti simbolik dan bandingkan hasil oktal, matriks, ringkasan, dan pratinjau tugas. Perjanjian menangkap kesalahan transkripsi dan aritmatika dalam format yang didukung. Itu tidak memvalidasi perintah pengumpulan eksternal, mengungkapkan kepemilikan, atau membuktikan bahwa izin yang diwakili efektif pada objek tempat teks disalin.
Perintah stat eksternal tidak dijalankan oleh kalkulator browser
Dekode ACL tetap berada di luar rute. Modelnya berisi pemilik, grup, lainnya, dan tiga bit khusus, tanpa entri bernama atau topeng ACL. Penguraian kode izin Windows juga tidak ada: tidak ada model identitas Windows, sintaks entri kontrol akses, atau penemuan platform. Inti gaya Unix sembilan posisi dapat dikonversi, tetapi tidak ada sistem izin tambahan yang dapat direkonstruksi dari hasil tersebut.
Batasan ini juga membatasi diagnosis. Modus dasar yang tampaknya memadai tidak membuktikan bahwa ACL atau kebijakan lain tidak relevan, sedangkan modus restriktif tidak mengidentifikasi setiap kemungkinan hibah. Kalkulator hanya menyelesaikan dua belas bit yang diwakili. Gunakan keluarannya untuk menyatakan mode biasa dengan tepat, lalu simpan klaim tentang otorisasi efektif untuk alat dan dokumentasi yang benar-benar mengekspos sistem izin eksternal.
ACL dan decoding izin Windows tetap berada di luar rute
Membaca mode gaya ls menjadi mekanis setelah inti yang diterima diisolasi. Hilangkan satu karakter tipe utama yang dikenali, bagi sembilan posisi sisanya menjadi pemilik, grup, dan lainnya, dan total baca 4, tulis 2, dan jalankan 1 dalam setiap tiga kali lipat. Kalkulator melakukan konversi tersebut dan memvalidasi huruf spesifik posisi, termasuk formulir s, S, t, dan T yang diterapkan.
Usahakan kesimpulannya proporsional dengan masukannya. Konversi yang berhasil membuktikan bahwa string yang diterima dipetakan secara konsisten ke mode oktal, matriks, ringkasan, dan penetapan yang dihasilkan. Itu tidak menjalankan stat, memeriksa jalur, memecahkan kode penanda tambahan, mengidentifikasi kepemilikan, atau menerapkan chmod. Batasan tersebut membuat keluarannya berguna: keluarannya tepat mengenai aritmatika mode dasar dan tidak berisi bukti yang tidak pernah dikumpulkannya.