Bahasa Indonesia

Alat pengembang · Kalkulator Chmod

Memperbaiki nginx 403 Terlarang: izin file dan direktori yang penting

· Mengapa itu penting

chmod unix kontrol akses

diagnosis web-root ditampilkan sebagai diagram bit izin Unix yang berbeda
Ilustrasi vektor ToolAcre asli

403 dari nginx sering kali merupakan masalah sistem file, bukan masalah konfigurasi. Posting ini menunjukkan cara memeriksa pengguna mana yang menjalankan nginx dan bit mana yang dibutuhkan pada setiap direktori di jalurnya.

403 di situs statis yang berfungsi secara lokal — file berasal dari /home/deploy dan nginx mengatakan terlarang untuk setiap URL

Sebuah nginx 403 mungkin melibatkan bit mode, tetapi rute ini tidak dapat mengidentifikasi penyebabnya. Kalkulator tidak memiliki integrasi nginx, log, pengurai konfigurasi, pencarian proses, atau penjelajah jalur. Ini menjawab pertanyaan yang lebih sempit: apakah kelas direktori telah mengeksekusi dan apakah kelas file biasa telah membaca, membantu menafsirkan bukti yang dikumpulkan di tempat lain.

Mulailah dengan mode persis yang diamati pada setiap komponen jalur daripada mengasumsikan default. Masuk ke setiap mode dan pilih jenis targetnya. Teks simbolis, kotak centang, dan prosa memperlihatkan izin kelas dan mengonfirmasi konversi, tetapi tidak dapat menunjukkan upaya akses nginx, identitas apa yang digunakan, atau apakah izin sistem file menghasilkan respons.

403 mungkin melibatkan bit mode, tetapi rute ini tidak dapat mengidentifikasi penyebabnya

Kalkulator tidak dapat menemukan identitas pekerja nginx. Ini memodelkan pemilik, grup, dan kelas lainnya, tetapi tidak ada nama pengguna, proses, atau keanggotaan. Oleh karena itu, mode seperti rwxr-xr-x tidak menjelaskan apa pun tentang apakah pekerja memiliki objek tersebut, termasuk dalam grupnya, atau berada di bawah grup lain. Inspeksi eksternal harus menetapkan klasifikasi tersebut.

Penemuan identitas harus mendahului klaim tentang bit yang relevan. Setelah bukti menetapkan kelas yang berlaku, matriks menunjukkan dibaca sebagai 4, ditulis sebagai 2 dan dieksekusi sebagai 1. Sebelum itu, grup penyuntingan atau lainnya hanyalah dugaan. Rute tidak membaca status proses; itu menerjemahkan mode yang disediakan daripada menyimpulkan arsitektur server.

Kalkulator tidak menemukan identitas pekerja nginx

Periksa setiap komponen direktori sebagai mode terpisah yang disediakan. Untuk direktori, eksekusi memungkinkan entri dan akses berbasis nama, baca memungkinkan daftar, dan tulis memungkinkan pembuatan, penggantian nama, dan penghapusan entri. Penjelasan spesifik target membantu peninjau menentukan apakah kelas yang dibuat secara eksternal telah mengeksekusi komponen tertentu tanpa mengklaim telah memeriksa jalur itu sendiri.

Browser tidak berjalan dari root ke root web. Itu tidak dapat menemukan komponen pemblokiran, mengkonfirmasi keberadaan atau memeriksa ACL. Sediakan setiap mode direktori yang diamati secara terpisah, lalu periksa objek akhir sebagai file biasa, di mana pembacaan menyangkut konten daripada daftar. Ini menafsirkan bukti yang dikumpulkan alih-alih menggantikan pemeriksaan sistem file.

File memerlukan r, dan tidak lebih — mengapa 644 cukup untuk file statis dan mengapa 755 pada file bukanlah solusinya

Untuk file statis, 644 merender rw-r--r--. Pemilik menerima baca dan tulis, sedangkan kelompok dan lainnya menerima baca; tidak ada yang menerima eksekusi. Konversi ini menunjukkan bahwa file yang dibaca dan dieksekusi adalah bit yang terpisah. Halaman tersebut tidak memiliki dasar untuk memutuskan apakah server tertentu perlu dijalankan, karena kebijakan server tidak ada.

Jaga agar penjelasan file dan direktori tetap berbeda. Eksekusi direktori berarti entri dan jangkauan berdasarkan nama, sedangkan eksekusi file biasa berarti menjalankan program. Oleh karena itu, kotak centang yang sama memiliki prosa khusus target. Membandingkan 644 dengan 755 memperjelas sedikit, tetapi tidak dapat mendiagnosis 403 atau menentukan mode universal tanpa konfigurasi, identitas, ACL, dan konteks kebijakan.

Contoh praktis: menelusuri /home/deploy/site/index.html — namai -l di jalur dan baris ls -l yang mengungkapkan pemblokir

Contoh yang didukung dimulai setelah bukti jalur dikumpulkan di tempat lain. Misalkan komponen direktori adalah 755 dan file terakhir adalah 644. Kalkulator menjadikan direktori sebagai rwxr-xr-x, menjelaskan grup dan eksekusi lainnya sebagai akses masuk dan jangkauan. Itu menjadikan file sebagai rw-r--r--, menjelaskan grup dan bacaan lainnya sebagai akses konten.

Jika suatu komponen adalah 750, rangkap tiga lainnya adalah ---, sedangkan grupnya tetap r-x. Perbedaan itu mungkin penting, tetapi tidak membuktikan nginx menggunakan yang lain. Rute tidak dapat menjalankan namei atau ls, jadi bukti eksternal harus menyediakan jalur dan mode. Kemudian menyinkronkan setiap representasi untuk mengurangi kesalahan transkripsi selama peninjauan.

Contoh praktis: periksa mode yang disediakan untuk setiap komponen jalur

Keputusan kepemilikan tetap berada di luar mode konversi. Panel tidak membaca pemilik atau grup dan tidak menawarkan operasi chown atau chgrp. Ia tidak dapat memilih antara penerapan, layanan, atau kepemilikan grup bersama, atau menilai konten yang dipindahkan. Keputusan-keputusan tersebut memerlukan bukti sistem dan beban kerja yang tidak ada dalam sumbernya; tidak ada mode yang dihasilkan yang dapat menggantikan konteks itu.

Setelah kepemilikan diselesaikan di tempat lain, bandingkan cara moda membagi akses. Mode 750 memberikan izin pemilik penuh, membaca dan mengeksekusi grup, dan tidak memberikan izin apa pun kepada yang lain; 755 menambahkan pembacaan dan eksekusi lainnya. Hal ini tetap bergantung pada mengetahui kelas pekerja. Pratinjau perintah inert tidak mengubah kepemilikan atau mengonfirmasi akses server.

Pilihan kepemilikan tetap berada di luar konversi mode

Konfigurasi, pemilihan indeks, kontrol akses wajib, dan perilaku upstream tidak didiagnosis di sini. Tidak ada sumber yang memuat konfigurasi nginx, memeriksa URI atau indeks, membaca log, menghubungi upstream, atau mengamati SELinux atau AppArmor. Oleh karena itu, mengonversi mode yang disediakan dengan benar tidak dapat menentukan mengapa nginx mengembalikan 403; bukti server harus menjawab pertanyaan itu.

Pertahankan perbedaan ini ketika suatu mode tampak mencurigakan. Panel mungkin menunjukkan bahwa kelas direktori tidak memiliki eksekusi atau kelas file tidak memiliki kemampuan membaca, namun relevansinya bergantung pada identitas dan bukti jalur. Bit permisif juga tidak dapat mengesampingkan penyebab lainnya. Nyatakan dengan tepat apa yang diizinkan oleh mode tersebut, lalu kembali ke diagnostik khusus server.

Konfigurasi, indeks, MAC dan penyebab hulu tidak terdiagnosis

Akses jalur mungkin bergantung pada setiap komponen, namun kalkulator melihat satu nilai yang diberikan pada satu waktu. Kekuatannya adalah decoding yang akurat: oktal, teks simbolik, dan kotak centang tetap tersinkronisasi, sementara prosa direktori membedakan daftar, modifikasi, dan entri. Ini menyederhanakan peninjauan tanpa berpura-pura menemukan komponen atau proses yang mencoba mengakses.

Tetapkan identitas server dan kumpulkan mode jalur di luar rute ini. Decode setiap direktori sebagai direktori dan objek akhir sebagai file biasa, dengan fokus pada kelas yang diverifikasi secara eksternal. Selidiki konfigurasi, ACL, dan kebijakan wajib secara terpisah. Kalkulator memvalidasi aritmatika, namun tidak dapat mengidentifikasi penyebab 403 atau memverifikasi perbaikan.