Bahasa Indonesia

Alat pengembang · Kalkulator Chmod

Apa yang dilakukan bit eksekusi pada direktori, dan mengapa folder 644 rusak

· Cara kerjanya

chmod unix alur kerja pengembang

traversal direktori ditampilkan sebagai diagram bit izin Unix yang berbeda
Ilustrasi vektor ToolAcre asli

Pada sebuah direktori, x bukan tentang menjalankan apa pun; itu memberikan hak untuk melintasi. Posting ini menjelaskan pemisahan read/search, kasus ganjil yang dihasilkannya, dan mode untuk menghindarinya.

Izin ditolak pada file yang dapat Anda baca — file tersebut adalah 644, direktorinya adalah 644, dan cat masih gagal

File yang dapat dibaca mungkin tetap tidak dapat dijangkau ketika direktorinya tidak dapat dieksekusi untuk kelas yang relevan. Artikel 501 memanggil direktori untuk menjalankan traversal daripada menjalankan folder. Penjelasan direktori kalkulator lebih eksplisit: membaca entri daftar, menulis perubahan entri izin, dan mengeksekusi izin memasuki direktori dan menjangkau file di dalamnya berdasarkan nama. Mode 644 tidak memiliki bit eksekusi untuk kelas mana pun.

Bandingkan 644 dengan 755 saat target disetel ke direktori. Render pertama rw-r--r--; yang kedua merender rwxr-xr-x. Setiap perolehan kelas dieksekusi, sementara hanya pemilik yang tetap menulis di kedua mode. Kontras tersebut menjelaskan perbedaan izin yang diwakili. Halaman tersebut tidak memeriksa file, mengidentifikasi proses pengaksesan, atau menguji apakah direktori leluhur memblokir jalur sebenarnya.

Baca daftar, jalankan lintasan — bagaimana direktori r menampilkan nama sementara x memungkinkan Anda membuka entri berdasarkan nama dan menyatakannya

Direktori baca dan eksekusi adalah tanda terpisah dengan penjelasan terpisah. Baca sesuai dengan entri daftar. Jalankan berhubungan dengan memasuki direktori dan mencapai file bernama di dalamnya. Oleh karena itu, suatu kelas dapat memiliki satu kelas tanpa kelas lainnya dalam model numerik. Matriks menjaga perbedaan tersebut tetap terlihat dengan menempatkan pembacaan pada bobot 4 dan mengeksekusi pada bobot 1 dalam setiap digit kelas.

Mengubah digit kelas lain dari 4 menjadi 5 adalah demonstrasi terfokus. Triple simbolik berpindah dari r-- ke r-x, dan penjelasan direktori menambahkan kemampuan jangkauan berdasarkan nama sambil tetap mempertahankan daftar. Ini adalah fakta konversi, bukan tes akses langsung. Kepemilikan, identitas, entri ACL, dan kebijakan wajib tidak ada, sehingga kalkulator tidak dapat menentukan kelas mana yang mengatur permintaan sebenarnya.

Keempat kombinasi tersebut — r tanpa x, x tanpa r, keduanya dan bukan keduanya, serta apa yang masing-masing dapat dilakukan oleh pengguna

Keempat kombinasi baca dan jalankan dapat direpresentasikan tanpa menetapkan perilaku sistem yang lebih luas. Digit 4 adalah r--, digit 1 adalah --x, digit 5 adalah rx, dan digit 0 adalah ---. Untuk target direktori, prosa yang dihasilkan mengaitkan bit-bit yang dipilih tersebut dengan daftar dan keterjangkauan berdasarkan nama. Tulis tetap merupakan tanda independen dan tidak tersirat dalam pembacaan atau eksekusi.

Gunakan matriks untuk mengisolasi satu kelas pada satu waktu daripada memperlakukan mode tiga digit sebagai label. Halaman tersebut membangun kembali bilangan bulat setiap kali kotak berubah, sehingga digit yang cocok dan posisi simbolik berpindah bersama. Itu tidak dapat membuka direktori atau mencoba pencarian. Keempat kombinasi tersebut merupakan izin yang dimodelkan secara tepat, sementara hasil efektif apa pun bergantung pada konteks target yang diamati secara terpisah.

Traversal berlaku untuk setiap leluhur — mengapa satu direktori terbatas di bagian atas jalur memutus akses ke semua yang ada di bawahnya

Artikel 501 mengidentifikasi izin eksekusi direktori induk yang hilang sebagai alasan mode file yang valid mungkin tidak menyelesaikan akses. Setiap komponen direktori dalam suatu jalur menyajikan pertanyaan modenya sendiri. Kalkulator dapat memecahkan kode setiap nilai yang diberikan secara independen dan menunjukkan apakah ada pemilik, grup, atau eksekusi lainnya. Itu tidak dapat menelusuri jalur atau menentukan kelas mana yang berlaku untuk identitas yang meminta.

Hal ini menjadikan analisis leluhur sebagai alur kerja inspeksi eksternal, bukan fitur kalkulator. Jika orang tua dilaporkan sebagai 750, halaman tersebut menampilkan rwxr-x---; jika yang lain adalah 700, itu menunjukkan rwx------. Perbedaan tersebut nyata, namun tidak ada kesimpulan yang diperoleh sampai kepemilikan dan keanggotaan proses diketahui. Pratinjau perintah tetap inert dan tidak memberikan bukti bahwa mengubah direktori mana pun adalah hal yang tepat.

Contoh praktis: memperbaiki root web — memeriksa setiap direktori dari / ke file yang disajikan dan memilih 755 atau 750

Untuk contoh web-root, periksa mode yang disediakan komponen demi komponen alih-alih menetapkan satu nilai untuk pohon. Mode 755 memberi pemilik rwx dan grup serta r-x lainnya; mode 750 menghapus semua izin lainnya sambil mempertahankan grup r-x. Konverter membuat perbedaan itu terlihat. Ia tidak dapat mengidentifikasi proses web, menemukan jalurnya, atau memilih kelas mana yang memerlukan traversal.

Periksa file yang disajikan secara terpisah dari direktorinya. Mode file yang disediakan seperti 644 merender rw-r--r--, sementara nomor yang sama yang dipilih sebagai direktori menjelaskan tindakan yang berbeda dan tidak ada eksekusi di mana pun. Kata-kata yang sensitif terhadap target ini mencegah pembacaan file menjadi bingung dengan traversal direktori. Kesesuaian masih bergantung pada kepemilikan sebenarnya, identitas proses, nenek moyang, dan lapisan kontrol akses apa pun yang tidak ada di halaman.

Rekursi dilakukan dengan benar - mengapa chmod -R 644 pada pohon adalah kesalahan klasik dan bagaimana huruf kapital X atau find -type d menghindarinya

Tampilan rekursif sengaja dibuat sederhana. Memilihnya hanya akan memasukkan -R ke dalam perintah chmod yang dihasilkan; kalkulator tidak menghitung pohon atau membedakan file dari direktori. Menerapkan mode 644 yang lengkap di mana saja akan membuat direktori dieksekusi dengan jelas di setiap kelas. Halaman tersebut dapat menampilkan hasil tersebut, namun tidak menerapkan huruf kapital X atau alur kerja pemilihan tipe file.

Penugasan simbolik yang dihasilkan juga tetap. Untuk 644 adalah u=rw,g=r,o=r, bukan perintah relatif yang mempertahankan traversal secara kondisional. Bidang gaya ls menunjukkan rw-r--r-- dan tidak sama dengan daftar tugas tersebut. Setiap strategi rekursi eksternal harus diverifikasi di luar rute ini, termasuk pemilihan target, penanganan link, dan mode akhir yang ditempatkan pada tipe objek berbeda.

Apa yang tidak tercakup dalam hal ini — perilaku melekat dan kaku pada direktori, dan masker ACL, yang tercakup dalam postingan mereka sendiri

Masker lengket, setgid, dan ACL terpisah dari pertanyaan traversal biasa. Kalkulator ini mengimplementasikan representasi yang melekat dan setgid serta penjelasan yang peka terhadap target, namun perbandingan inti artikel ini hanya perlu dibaca dan dijalankan. ACL masker tidak terwakili sama sekali. Konversi mode dasar yang benar tidak dapat menentukan apakah entri tambahan memberikan atau membatasi akses untuk identitas tertentu.

Umask juga di luar ujian. Halaman menerima mode selesai, bukan pengaturan proses yang mungkin mendahuluinya. Jika direktori muncul dengan 644, konverter dapat menampilkan posisi eksekusi yang hilang dan menghasilkan perintah kandidat untuk nilai lain yang diberikan. Mereka tidak dapat menjelaskan mengapa modus ini muncul, apakah kepemilikan tersebut salah, atau apakah perubahan tersebut dapat mengatasi kegagalan yang sebenarnya.

Kesimpulan: direktori memerlukan x agar dapat digunakan — dan kalkulator membuat perbedaan antara 644 dan 755 terlihat sebagai r-- versus r-x

Kesimpulan yang dapat diambil adalah bahwa direktori x mewakili entri dan jangkauan berdasarkan nama dalam penjelasan kalkulator ini. Mode 644 menampilkan r-- untuk grup dan lainnya, sedangkan 755 menampilkan r-x untuk keduanya dan menambahkan eksekusi pemilik juga. Bidang oktal, bidang simbolik, matriks, dan prosa yang disinkronkan membuat perbedaan tersebut dapat diperiksa tanpa memperlakukan bilangan yang dikenal sebagai bilangan yang benar secara universal.

Diagnosis di luar aritmatika sebelum menerapkan apa pun. Konfirmasikan identitas yang relevan, kepemilikan, mode yang disediakan masing-masing leluhur, dan jenis target. Kemudian gunakan kalkulator untuk memverifikasi nilai kandidat yang lengkap. Ia akan menolak notasi yang salah formatnya dan menunjukkan bit mana yang berubah, namun tidak pernah membuka jalur, mengeksekusi chmod, mengevaluasi kebijakan aplikasi, atau membuktikan bahwa bit mode tradisional adalah satu-satunya otoritas.