Alat pengembang · Kalkulator Chmod
Bagaimana umask menentukan izin default file dan folder baru
· Cara kerjanya
chmod unix alur kerja pengembang
File baru tidak dimulai pada 777; masker diterapkan terlebih dahulu. Posting ini menunjukkan operasi bitwise yang tepat, mengapa file dan direktori berakhir berbeda, dan bagaimana menjelaskan tentang umask 022, 027 dan 077.
File yang tidak dapat dibaca oleh server web — tugas cron menulis file 600 ke dalam direktori yang dilayani nginx, dan tidak ada yang menjalankan chmod pada apa pun
Mode file yang baru diamati dapat didekodekan di sini meskipun proses yang menghasilkannya tidak diketahui. Masukkan 600 dan kalkulator menunjukkan rw-------: pemilik membaca dan menulis, tanpa izin untuk grup atau lainnya. Itu menjelaskan bit hasil yang diberikan. Ini tidak menentukan mengapa pekerjaan terjadwal menghasilkan nilai tersebut atau apakah proses web dapat membaca file tersebut.
Artikel 501 memberikan batasan diagnostik yang diperlukan. Mode yang valid mungkin muncul bersamaan dengan kepemilikan yang salah atau bit eksekusi yang hilang pada direktori induk. Halaman ini tidak menerima identitas proses atau informasi jalur. Ia dapat membandingkan 600 dengan 640 yang diusulkan dan mengekspos bit baca grup yang ditambahkan, namun tidak dapat mengatribusikan mode asli ke umask, layanan, shell, atau sistem file.
Asal izin baru — mode yang diminta (biasanya 666 untuk file, 777 untuk direktori) dan umask proses
Mode pembuatan dan umask yang diminta adalah input latar belakang, bukan kontrol kalkulator. Tidak ada bidang umask dan tidak ada operasi yang membuat file atau direktori. Oleh karena itu, setiap contoh mode pembuatan harus muncul sebagai hasil yang dihitung secara eksternal. Setelah disediakan, kalkulator dapat menerjemahkan hasil tersebut ke dalam bentuk oktal, simbolik, matriks, ringkasan, dan bentuk bahasa Inggris biasa tanpa menyatakan bagaimana nilai tersebut diperoleh.
Cakupan yang dikoreksi ini penting karena keluaran yang disinkronkan dapat terlihat lebih berwibawa daripada yang sebenarnya. Memasukkan 640 menghasilkan rw-r----- dan mengidentifikasi pemilik read/write plus grup read. Halaman tersebut dapat memverifikasi representasi itu. Ia tidak dapat memprediksi default untuk proses login, tugas terjadwal, layanan, kontainer, atau sistem penyimpanan, karena tidak ada konteks tersebut yang muncul di antara input atau implementasinya.
Mode pembuatan yang diminta dan umask adalah input latar belakang yang tidak diterapkan di sini
AND-NOT aritmatika harus dilakukan di luar kalkulator ini. Intinya menerima satu bilangan bulat lengkap dan meledakkannya menjadi bendera bernama; ia tidak memiliki operan kedua untuk topeng pembuatan. Akibatnya, halaman tidak dapat menunjukkan formula mask, membandingkan pengurangan dengan operasi bitwise, atau memutuskan apakah komputasi eksternal dilakukan dengan benar sebelum mode hasilnya dimasukkan.
Yang dapat diperiksa adalah pola bit terakhir. Jika sumber tepercaya lain menyediakan 640, matriks menunjukkan pemilik membaca dan menulis, membaca grup, dan tidak ada izin lainnya. Mengubah pembacaan grup akan membangun kembali 600, sementara mengubah pembacaan lainnya pada pembangunan kembali 644. Transisi ini memverifikasi mode aritmatika di dalam konverter tanpa menampilkannya sebagai perhitungan topeng penciptaan atau bukti tentang proses yang tidak terlihat.
AND-NOT aritmatika harus dilakukan di luar kalkulator
Kalkulator dapat membandingkan mode file dan direktori yang dihasilkan, namun tidak menghasilkan keduanya. Dengan memilih 644, penjelasan file reguler menjelaskan pembacaan dan perubahan file; mengalihkan target ke direktori mengubah kata kerja tersebut menjadi daftar, memodifikasi entri, dan mencapai nama. Bilangan bulatnya tetap 644. Kontras tersebut menunjukkan mengapa jenis target penting tanpa menegaskan kreasi mana yang menetapkan default permintaan program apa pun.
Hasil 755 yang disediakan secara terpisah dapat diperiksa dengan cara yang sama. Tampilannya adalah rwxr-xr-x, dengan eksekusi aktif untuk semua kelas; 644 adalah rw-r--r--, dengan tidak ada eksekusi sama sekali. Halaman tersebut dengan jelas memperlihatkan perbedaan itu. Nilai ini tidak memperoleh nilai apa pun dari 666, 777, 022, atau masukan latar belakang lainnya, karena penghitungan tersebut tidak diterapkan di CHMOD_SOURCES.
Kalkulator dapat membandingkan mode file dan direktori yang dihasilkan tetapi tidak membuat keduanya
Untuk contoh masker restriktif, pertahankan komputasi eksternal dan dekode hanya hasil yang dinyatakan. Jika file biasa yang diamati adalah 640, kalkulator akan menampilkan rw-r-----; jika direktori yang diamati adalah 750, maka akan dirender rwxr-x---. Pemilik memiliki akses yang lebih luas pada keduanya, kelompok menerima kumpulan yang lebih sempit, dan kelompok lainnya tidak menerima apa pun. Pernyataan tersebut mengikuti langsung dari mode yang telah diselesaikan.
Pasangan lain yang disediakan secara eksternal, 600 dan 700, membuat metode peninjauan yang sama terlihat tanpa menyatakan asal usulnya. Mode 600 hanya memberikan pemilik membaca dan menulis pada file. Mode 700 hanya memberikan pemilik membaca, menulis, dan mengeksekusi pada direktori. Konverter dapat mengkonfirmasi setiap kelas dan bit, namun tidak dapat mencocokkan hasil mana pun dengan pengaturan umask tertentu dari buktinya sendiri.
Contoh praktis: mendekode hasil yang dihitung secara eksternal untuk masker yang membatasi
Dimana suatu proses memperoleh umask berada di luar bukti repositori. Kalkulator tidak berisi integrasi dengan shell, penjadwal, manajer layanan, kontainer, atau lingkungan proses. Oleh karena itu, menyebut salah satu sistem tersebut sebagai penyebab suatu mode akan melebihi apa yang diamati oleh halaman tersebut. Mulailah dengan mode tepercaya yang dikumpulkan di tempat lain, lalu gunakan rute ini hanya agar pemiliknya, grup, dan bagian lainnya dapat terbaca.
Pratinjau perintah tidak menutup kesenjangan bukti tersebut. Itu dapat mengutip jalur yang disediakan dan secara opsional menampilkan -R, tetapi tidak pernah membuka jalur atau membaca pengaturan proses. Demikian pula, pemilih target mengubah bahasa penjelasan daripada menemukan tipe objek. Konversi yang konsisten mempersempit pertanyaan tentang izin; itu tidak mengungkapkan komponen mana yang memilih mode tersebut atau apakah pemilihan itu disengaja.
Dimana suatu proses memperoleh umask berada di luar bukti repositori
ACL default dan mode pembuatan eksplisit berada di luar alat ini. Model datanya memiliki satu kelas pemilik, satu kelas grup, semua orang, dan tiga bit khusus. Tidak ada entri bernama ACL, topeng ACL, panggilan pembuatan, atau argumen program. Oleh karena itu, kalkulator tidak dapat memutuskan apakah mode yang telah selesai muncul dari lapisan kontrol akses lain atau dari aplikasi yang menyediakan permintaan tertentu.
Suatu mode masih dapat diperiksa tanpa menghancurkan mekanisme tersebut secara bersamaan. Masukkan nilai oktal yang diamati, konfirmasikan sembilan posisi simbolik, dan bandingkan matriks dengan ringkasan empat digit. Jika mereka setuju, maka modus tradisional telah diterjemahkan dengan benar. Klaim apa pun tentang default, efek ACL, atau perilaku program memerlukan bukti dari pembuat dan sistem file, bukan interpretasi lain dari bilangan bulat yang sama.
ACL default dan mode terbuka eksplisit berada di luar alat ini
Alur kerja yang diperbaiki dihitung di tempat lain, lalu periksa mode yang dihasilkan di sini. Pasokan string gaya oktal atau ls yang telah selesai dan biarkan bidang yang disinkronkan mengekspos setiap bit. Validasi menangkap digit oktal dan huruf yang salah dalam posisi simbolis yang salah. Itu tidak memvalidasi ekspresi umask, menemukan konteks pembuatan, atau memprediksi apa yang akan diterima file atau direktori di masa depan.
Perlakukan hasilnya sebagai satu lapisan diagnostik. 640 atau 750 yang didekodekan dapat mengungkapkan hibah yang tidak terduga atau bit eksekusi yang hilang, sementara artikel 501 mengingatkan kita untuk memeriksa kepemilikan dan traversal direktori induk secara terpisah. Berhentilah sebelum menetapkan suatu penyebab. Kalkulator membuktikan bagaimana nilai yang diberikan dipetakan ke izin; ia tidak memberikan dasar untuk klaim tentang shell, layanan, wadah, ACL, atau default sistem file.