Bahasa Indonesia

Alat pengembang · Kalkulator Chmod

mode simbolik chmod dijelaskan: u+x, gw, o=r dan a+rX

· Cara kerjanya

chmod unix alur kerja pengembang

penugasan simbolis ditampilkan sebagai diagram bit izin Unix yang berbeda
Ilustrasi vektor ToolAcre asli

Bentuk simbolis dari chmod adalah tata bahasa kecil: siapa, operator, yang bit. Posting ini memisahkannya sehingga u+x dan go-rwx menjadi jelas, dan menunjukkan kapan simbol mengalahkan oktal.

Skrip penerapan yang penuh dengan huruf - chmod u+x,go-w deploy.sh berfungsi, tetapi tidak ada seorang pun di tim yang dapat mengetahui perubahannya

Perintah seperti u+x terlihat seperti tampilan simbolis kalkulator, namun kedua bentuk tersebut memiliki tugas yang berbeda. Bidang simbolik yang dapat diedit menerima sembilan posisi izin, secara opsional didahului dengan karakter tipe file yang dikenali. Sebaliknya, argumen chmod yang dihasilkan menguraikan penugasan lengkap dengan klausa u=, g=, dan o=, sehingga argumen ini mewakili mode tetap daripada mengurai perubahan relatif.

Memasukkan 750 membuat perbedaan menjadi nyata. Tampilannya adalah rwxr-x---, sedangkan tugas yang dihasilkan adalah u=rwx,g=rx,o=. Keduanya mendeskripsikan pemilik, grup, dan bit lain yang sama, namun hanya bit kedua yang diformat sebagai argumen chmod. Halaman tersebut tidak pernah menjalankan perintah itu. Ini memperlihatkan representasi sehingga nilai yang diusulkan dapat ditinjau sebelum tindakan shell terpisah.

Kalkulator memisahkan tampilan bergaya ls dari daftar tugas yang dihasilkannya

Huruf u, g, dan o muncul pada tugas yang dihasilkan karena melabeli pemilik, grup, dan lainnya. Setiap keluaran memberi nama ketiga kelas secara eksplisit, termasuk klausa kosong ketika kelas tidak memiliki izin. Kalkulator tidak mengurai tata bahasa atau steno yang dihilangkan. Inputnya dimulai dari mode yang sudah selesai, bukan instruksi yang hasilnya bergantung pada target yang ada.

Koreksi ini mencegah terjadinya overclaim yang halus. Matriks dapat menunjukkan dengan tepat kelas mana yang menerima pembacaan, penulisan, atau eksekusi, namun matriks tidak dapat memutuskan apa arti pemilih kelas yang dihilangkan dalam implementasi chmod lainnya. Bandingkan tiga kolom matriks dengan tiga klausa penugasan. Perjanjian mereka memverifikasi nilai tetap tanpa bergantung pada aturan perintah relatif yang tidak diterapkan oleh antarmuka ini.

Surat siapa yang muncul dalam tugas yang dihasilkan; relatif dihilangkan-yang tata bahasanya tidak diuraikan

Generator tugas menggunakan = untuk setiap kelas biasa. Pilihan itu membangun kembali pemilik, grup, dan tripel lainnya yang diminta secara tepat, termasuk menyelesaikan kelas dengan mengeluarkan sisi kanan yang kosong. Meskipun + dan - termasuk dalam perintah chmod simbolis, keduanya tidak diterima sebagai masukan kalkulator. Oleh karena itu, halaman ini tidak memodelkan penambahan atau penghapusan tambahan dari mode awal yang tidak diketahui.

Perbandingan satu bit menunjukkan apa yang dapat dibuktikan oleh alur kerja yang didukung. Mode 750 merender rwxr-x---; mengubah digit grup menjadi 7 menghasilkan rwxrwx--- dan mengubah g=rx menjadi g=rwx. Kalkulator mengidentifikasi mode sebelum dan sesudah yang diselesaikan. Itu tidak mengevaluasi g+w terhadap file langsung, karena tidak ada mode, jalur, sistem file, atau eksekusi perintah saat ini yang berpartisipasi dalam konversi.

Operator yang dihasilkan adalah =, sedangkan tata bahasa masukan + dan - tetap berada di luar alat

Parser mengenali r dan w pada posisi tetapnya, ditambah x atau - pada posisi eksekusi biasa. Ia juga menerima s, S, t, dan T di mana bit-bit khusus berbagi posisi tersebut. Huruf kapital X berbeda: ini termasuk dalam tata bahasa chmod relatif dan tidak didukung di sini. Pemberian X ditolak daripada diinterpretasikan secara diam-diam sebagai bit eksekusi biasa.

Huruf kecil dan huruf besar khusus diterapkan dengan sengaja. Setuid dan setgid menggunakan s ketika bit eksekusi yang cocok ada dan S ketika tidak ada; sticky menggunakan t atau T dengan aturan yang sama di posisi eksekusi lainnya. Baris khusus dan ringkasan empat digit mempertahankan bagian tersebut. Semua ini tidak menambahkan dukungan untuk pemilihan huruf kapital bersyarat di seluruh file dan direktori.

Parser menerima r, w, x, s, S, t dan T; huruf kapital X tidak didukung

Ekspresi penyalinan kelas seperti g=u tidak diterapkan. Kalkulator tidak pernah membaca kelas sumber dari objek yang ada atau menerapkan bit satu kelas ke kelas lainnya. Ia menerima mode gaya oktal atau ls lengkap, mengubah nilai tersebut menjadi boolean bernama, dan mengeluarkan tanda eksplisit untuk setiap kelas. Setiap hasil yang disalin harus dihitung di tempat lain sebelum halaman ini dapat memeriksanya.

Misalkan langkah eksternal menentukan bahwa pemilik dan grup harus memiliki rwx sementara yang lain tidak memilikinya. Memasukkan 770 menghasilkan rwxrwx--- dan u=rwx,g=rwx,o=. Hal ini menegaskan hasil yang telah selesai tetapi tidak membuktikan bagaimana hasil tersebut diperoleh. Kepemilikannya juga masih belum diketahui: konverter memberi label pada kelas tanpa mengidentifikasi pemilik sebenarnya, grup, atau proses yang akan menemui target.

Menyalin izin antar kelas tidak diterapkan

Mode 0750 diterima dengan nol di depannya dan diuraikan dengan nilai yang sama dengan 750. Digit pemilik 7 mengaktifkan baca, tulis, dan eksekusi; grup digit 5 mengaktifkan baca dan eksekusi; digit lainnya 0 tidak mengaktifkan apa pun. Tampilan yang disinkronkan menjadi rwxr-x---, dan ringkasan yang selalu empat digit membuat 0750 tetap terlihat sebagai nilai ulasan yang tidak ambigu.

Penetapan simbolis yang dihasilkan untuk mode tetap tersebut adalah u=rwx,g=rx,o=. Tiga klausanya berhubungan langsung dengan kolom matriks, sedangkan pratinjau perintah oktal menggunakan 750 kecuali bit khusus memerlukan digit keempat. Jalur yang disediakan mungkin dikutip dalam pratinjau, namun tidak pernah dibuka. Contoh ini memverifikasi representasi, bukan kepemilikan, otorisasi, atau perubahan izin yang berhasil.

Contoh praktis: 0750 sebagai mode tetap dan menghasilkan daftar tugas

Perubahan berbasis referensi, penanganan symlink, dan operasi ACL tetap berada di luar konverter ini. Tidak ada masukan file referensi, penjelajahan jalur, model entri ACL, atau kueri sistem file di halaman. Memilih rekursi hanya menambahkan tanda -R yang ditampilkan. Akibatnya, perintah yang dihasilkan tidak dapat melaporkan objek mana yang akan dijangkau atau apakah lapisan kontrol akses lain mengubah hasil efektif.

Masukan yang tidak valid memberikan pemeriksaan batas yang berguna. Surat izin yang salah tempat, X yang tidak didukung, penanda tambahan, atau format digit oktal yang salah akan ditolak dan bukannya diperbaiki. Mengoreksi teks ke tampilan sembilan karakter yang didukung menghasilkan mode dan tampilan tersinkronisasi. Penerimaan itu hanya membuktikan bahwa string dipetakan ke dua belas bit yang diimplementasikan; itu tidak memvalidasi fitur chmod eksternal atau lingkungan target.

Operasi referensi, symlink, dan ACL tetap berada di luar konverter ini

Perbedaan praktisnya adalah antara tampilan gaya ls dan penugasan tetap yang dihasilkan, bukan antara input simbolik sebagai input relatif dan oktal sebagai absolut. Kedua formulir yang dapat diedit mewakili mode yang telah selesai. Kalkulator mengonversi salah satu menjadi bilangan bulat, matriks, ringkasan, penjelasan, dan pratinjau yang sama, lalu mengeluarkan klausa u=, g=, dan o= eksplisit untuk bentuk perintah simbolis.

Gunakan tampilan tersinkronisasi tersebut untuk menangkap kesalahan aritmatika. Jika 750, rwxr-x---, dan u=rwx,g=rx,o= muncul bersamaan, mode tetap konsisten secara internal. Berhenti di situ kecuali sistem sebenarnya memberikan lebih banyak bukti. Halaman ini tidak mengurai operator relatif, menghilangkan penyeleksi, penyalinan kelas, atau huruf kapital X, dan tidak dapat menentukan apakah mode mengatasi operasi gagal yang sebenarnya.