Bahasa Indonesia

Alat pengembang · Kalkulator Chmod

Mengapa chmod 777 merupakan perbaikan yang salah untuk kesalahan izin ditolak

· Mengapa itu penting

chmod unix kontrol akses

mode over-broad ditampilkan sebagai diagram bit izin Unix yang berbeda
Ilustrasi vektor ToolAcre asli

777 menghilangkan kesalahan dengan memberikan segalanya kepada semua orang. Posting ini menjelaskan apa yang sebenarnya terjadi, bagaimana hal itu dieksploitasi, dan langkah diagnostik untuk menemukan masalah sebenarnya.

Kesalahannya hilang, pertanyaannya tidak — chmod -R 777 pada direktori proyek memperbaiki formulir unggahan dan tidak ada yang tahu alasannya

Kesalahan izin yang hilang setelah 777 hanya membuktikan bahwa akses luas mengubah hasilnya. Ini tidak mengungkapkan bit mana yang penting atau apakah bit mode menyebabkan kegagalan. Kalkulator memetakan 777 ke rwxrwxrwx. Setiap kelas menerima baca, tulis, dan eksekusi, yang arti praktisnya berbeda antara file dan direktori biasa.

Bukti yang berguna adalah perbedaan tingkat bit dari mode aslinya. Catat tiga kali lipat kelas mode tersebut, lalu bandingkan 777 tanpa menyebut keberhasilan sebagai diagnosis. Kalkulator tidak mengetahui identitas proses, pemilik, grup, ACL, atau kebijakan wajib. Ini hanya memperlihatkan berapa banyak akses yang 777 diberikan sebelum solusi menjadi pengaturan permanen.

Apa yang 777 berikan secara sederhana — setiap pengguna di sistem dapat membaca, memodifikasi, dan (untuk direktori) membuat atau menghapus apa pun di pohon

Mode 777 menetapkan digit biasa maksimum untuk setiap kelas. Setiap 7 menggabungkan baca 4, tulis 2 dan jalankan 1, menghasilkan rwxrwxrwx. Untuk file, semua kelas dapat membaca, mengubah, dan menjalankan konten. Untuk direktori, mereka dapat membuat daftar, mengubah entri dan memasukkan berdasarkan nama. Setiap kotak centang biasa dipilih.

“Semua orang” secara khusus berhubungan dengan tiga izin terakhir, bukan akun yang dikenal. Tanpa identitas dan kepemilikan, kalkulator tidak dapat menentukan apakah suatu proses menggunakan pemilik, grup, atau lainnya. Membandingkan 777 dengan 775 atau 755 masih mengungkapkan setiap bit tulis yang dihapus dengan tepat, menggantikan deskripsi yang tidak jelas seperti “terbuka” dengan perbedaan tingkat kelas yang terlihat.

Bagaimana kerusakan terjadi — proses web yang disusupi, skrip yang ditulis dengan buruk, atau konfigurasi pengeditan penyewa lainnya atau hilangnya shell web

Kalkulator memperlihatkan bit yang diberikan tetapi tidak dapat membuktikan jalur eksploitasi. File yang dapat ditulis oleh dunia memicu peringatan bahwa akun mana pun dapat mengubah kontennya. Direktori 777 tanpa peringatan lengket bahwa entri dapat dibuat atau dihapus. Konsekuensi ini mengikuti modus dan jenis target, bukan bukti adanya atau tindakan akun lain.

Pisahkan kemungkinan konsekuensi dari peristiwa yang diamati. Halaman ini tidak memeriksa proses, penyewa, skrip, konfigurasi, atau akar web, dan tidak mengeksekusi apa pun. Hal ini dapat menetapkan bahwa penulisan diaktifkan untuk suatu kelas dan menandai kandidat luas untuk ditinjau. Klaim tentang penyusupan, file yang dimasukkan, atau penyalahgunaan sebenarnya memerlukan bukti lingkungan yang tidak pernah dikumpulkan oleh kalkulator.

Kalkulator memperlihatkan bit yang diberikan tetapi tidak dapat menunjukkan jalur eksploitasi

Diagnosis identitas dan kepemilikan terjadi di luar jalur ini. Bit biasa dikelompokkan berdasarkan pemilik, grup, dan lainnya, tetapi kalkulator hanya menerima bilangan bulat mode dan tipe target. Tanpa nama pemilik, keanggotaan grup, atau kredensial proses, ia tidak dapat memutuskan tripel mana yang mengontrol upaya akses yang gagal, meskipun ia mendekode setiap tripel secara konsisten.

Inilah sebabnya mengapa pelebaran semua kelas merupakan diagnostik yang lemah. Bit grup yang terverifikasi mungkin penting ketika suatu proses harus menggunakan akses grup; kepemilikan yang salah dapat membuat mode apa pun mengedit solusi yang salah. Gunakan matriks untuk mengisolasi kandidat perubahan, lalu memverifikasi identitas dan kepemilikan secara eksternal. Browser menyelesaikan representasi, bukan otorisasi.

Diagnosis identitas dan kepemilikan harus dilakukan di luar jalur ini

Untuk direktori unggahan, bandingkan kandidat tanpa meresepkannya. Mode 777 membuat setiap direktori kelas membaca, menulis, dan mengeksekusi. Mode 775 menghapus penulisan lain sambil mempertahankan penulisan grup. Mode 755 cadangan menulis untuk pemilik. Kalkulator menampilkan perbedaan-perbedaan ini, namun tidak dapat mengetahui kelas mana yang digunakan pengunggah atau operasi apa yang diperlukan.

Catat perubahan bit terkecil antar kandidat. Dari 777 hingga 775, hanya tulisan lain yang hilang; dari 775 hingga 755, penulisan grup juga hilang. Penulisan direktori mengontrol pembuatan, penggantian nama, dan penghapusan entri, sedangkan eksekusi mengontrol entri dan pencarian nama. Kesesuaian masih bergantung pada kepemilikan, identitas, ACL, dan perilaku aplikasi di luar kalkulator.

Contoh praktis: bandingkan mode direktori unggah kandidat tanpa menentukannya

Aturan penolakan khusus program memerlukan dokumentasi program dan bukti runtime. Sumber chmod tidak mengandung kebijakan SSH, aturan server web, atau konfigurasi aplikasi. Mereka tidak dapat membuktikan bahwa perangkat lunak menolak 777, menerima 755 atau memerlukan nilai lain. Kalkulator hanya mengonversi mode dan menjelaskan operasi file atau direktori biasa.

Jika perangkat lunak melaporkan izin sebagai terlalu luas, masuk ke mode observasi dan periksa grupnya serta bit lainnya. Kemudian konsultasikan dengan bukti resmi untuk program tersebut sebelum mengubah apa pun. Baris chmod yang dihasilkan adalah teks inert. Tampilan oktal dan simbolik yang cocok menegaskan konsistensi konversi, bukan kepatuhan terhadap kebijakan program atau keberhasilan operasional di masa depan.

Aturan penolakan khusus program memerlukan dokumentasi program tersebut

Penolakan kontrol akses wajib berada di luar chmod dan kalkulator. Tidak ada kueri sumber SELinux, AppArmor, atau mesin kebijakan lainnya. Oleh karena itu, mode 777 dapat ditampilkan dengan sempurna sementara kontrol yang tidak terkait tetap tidak terlihat. Laman tidak dapat membedakan kondisi tersebut dari pembatasan kepemilikan, ACL, penyimpanan, atau aplikasi; semuanya merupakan kemungkinan eksternal dan bukan temuan kalkulator.

Jangan perlakukan mode luas sebagai pengujian universal untuk setiap lapisan otorisasi. Bukti kalkulator diakhiri dengan pemilik, grup, dan bit lainnya ditambah setuid, setgid, dan lengket. Ini menunjukkan izin yang dipilih, bukan alasan operasi gagal atau berhasil. Pertahankan cara-cara yang diamati, bandingkan bagian-bagian yang tepat dan selidiki kebijakan eksternal secara independen.

Penolakan kebijakan wajib berada di luar chmod dan di luar kalkulator

Pahami setiap hibah sebelum memperluas suatu mode. Masukkan 777 dan kesembilan izin biasa menjadi eksplisit. Bandingkan 755 untuk menghapus grup dan tulisan lainnya, atau 775 untuk mempertahankan penulisan grup sambil menghapus tulisan lainnya. Transformasi faktual ini mengungkap permukaan akses setiap kandidat tanpa memilih mode untuk pemilik, proses, atau beban kerja yang tidak diketahui.

Selesaikan identitas dan kepemilikan di luar browser, lalu verifikasi hanya bit yang diinginkan. Konfirmasikan bahwa teks oktal, simbolik, ringkasan, dan kotak centang sesuai, menggunakan penjelasan file atau direktori yang tepat. Halaman ini menolak masukan yang salah format, namun tidak menjalankan chmod atau mengidentifikasi kompromi. Keputusan otorisasi akhir adalah milik lingkungan yang diperiksa.