Bahasa Indonesia

Alat pengembang · Kalkulator Chmod

Model izin Unix: dari chmod tahun 1970an hingga bit mode POSIX

· Latar belakang

chmod unix kontrol akses

model mode tradisional ditampilkan sebagai diagram bit izin Unix yang berbeda
Ilustrasi vektor ToolAcre asli

Model owner/group/others telah bertahan selama beberapa dekade dengan sedikit perubahan. Postingan ini menelusuri dari mana asalnya, apa yang POSIX standarkan, dan mengapa masih cocok untuk sebagian besar pekerjaan.

Desain tahun 1970-an dalam penerapan Anda di tahun 2020-an — setiap container dan runner CI masih menggunakan rwx, dan mengetahui alasannya akan membantu

Penerapan saat ini masih menghadirkan mode seperti 0644 dan string simbolik seperti rw-r--r--, namun repositori ini bukan arsip sejarah. Buktinya adalah representasi yang diimplementasikan: dua belas bit, konversi deterministik, dan validasi input oktal dan simbolik. Tanggal, penemu, paten, dan klaim tentang setiap sistem turunan Unix memerlukan sumber yang tidak diberikan di sini.

Oleh karena itu, kalkulator ini menawarkan tampilan masa kini dari model izin yang ringkas. Satu bilangan bulat menggerakkan pemilik, grup, dan kontrol lainnya ditambah setuid, setgid, dan lengket. Outputnya dapat diperiksa dalam bentuk oktal, simbolik, dan matriks. Kesepakatan membuktikan adanya konversi yang konsisten, bukan asal usul, universalitas, atau penerapan model tersebut.

Notasi berumur panjang muncul dalam penerapan saat ini, namun repositori ini bukan sumber riwayat

Sembilan bit biasa membentuk tiga kelas yang sama. Pemilik, grup, dan lainnya masing-masing menerima posisi baca, tulis, dan eksekusi dengan bobot 4, 2, dan 1. Kalkulator menjaga urutan itu di mana saja: di tiga digit oktal terakhir, baris simbolik sembilan karakter, matriks kotak centang, dan deskripsi bahasa Inggris sederhana yang dihasilkan untuk file atau direktori.

Mode 640 mendemonstrasikan struktur tanpa klaim garis keturunan. Pemilik 6 berarti membaca dan menulis, grup 4 berarti membaca, dan 0 lainnya berarti tidak ada izin biasa, menghasilkan rw-r-----. Seperti yang dijelaskan dalam artikel 501, ini adalah tanda yang dapat dihitung; mengidentifikasi pemilik, grup, atau proses sebenarnya tetap berada di luar konversi.

Model yang diimplementasikan memiliki sembilan bit biasa dalam tiga kelas

Setuid diimplementasikan sebagai topeng 4000. Pada file biasa, penyaji menempatkan s pada posisi eksekusi pemilik ketika setuid dan eksekusi pemilik ada. Jika setuid ada tanpa eksekusi pemilik, ia akan menempatkan S di sana, menjaga perbedaan penting antara bit khusus dan bit eksekusi biasa di bawahnya.

Deskripsi file menjelaskan huruf kecil sebagai eksekusi dengan identitas pemilik file dan menandai kombinasi huruf besar sebagai tidak ada yang dapat dijalankan. Pernyataan tersebut menggambarkan keluaran implementasi ini. Repositori ini tidak menyediakan catatan paten atau riwayat primer, sehingga bagian ini tidak mencantumkan mekanisme atau tanggal diperkenalkannya.

perilaku setuid diterapkan; riwayat paten tidak bersumber

Penjelasan direktori menggunakan nilai numerik yang sama tetapi kata kerja yang berbeda untuk bit biasa. Membaca entri daftar, menulis sampul, membuat, mengganti nama, dan menghapus entri, dan mengeksekusi sampul yang memasuki direktori dan mencapai konten bernama. Implementasinya juga menjelaskan setgid pada direktori yang menyebabkan file yang baru dibuat mewarisi grup direktori tersebut.

Sticky diwakili oleh 1000 dan menempati posisi eksekusi lainnya sebagai t atau T. Untuk direktori, alat ini menjelaskan penghapusan terbatas untuk entri bersama. Ini adalah implementasi semantik yang disajikan oleh kalkulator; tidak ada riwayat cabang atau garis keturunan lintas sistem yang dibuat, dan tidak ada sistem file langsung yang ditanyakan untuk mengonfirmasi perilaku lokal.

Perilaku bit khusus direktori dijelaskan tanpa klaim garis keturunan

Sumber memberi nama setiap topeng secara langsung: 0400, 0200, dan 0100 untuk pemilik; 0040, 0020, dan 0010 untuk grup; 0004, 0002, dan 0001 untuk lainnya. Setuid, setgid, dan lengket tambahkan 4000, 2000, dan 1000. Konversi adalah pengujian bit dan kombinasi bitwise daripada banding ke standar eksternal.

Aturan masukan juga sama konkritnya. Oktal menerima satu hingga empat digit dari 0 hingga 7, dengan bentuk awalan opsional 0 atau gaya 0o. Input simbolik menerima sembilan atau sepuluh posisi dengan karakter tipe file yang dikenali. Repositori tidak menetapkan bahwa setiap implementasi atau standar menerima tata bahasa permukaan yang sama persis.

Masker bit bernama dan semantik konversi diverifikasi; klaim standar universal tidak

Model kompak memiliki batasan yang disengaja. Ini menyediakan satu kelas pemilik, satu kelas grup, dan satu kelas lainnya, tetapi tidak ada entri pengguna bernama, entri grup bernama, topeng ACL, atau ACL default. Ia juga tidak memiliki kemampuan yang ditetapkan. Mekanisme tersebut tidak dapat disimpulkan dari string rwx biasa atau konversi oktal yang berhasil.

Pembuatan perintah tidak memperluas model. Ini memancarkan argumen oktal atau klausa u=, g=, dan o= eksplisit, menambahkan u+s, g+s, atau +t bila diperlukan. Hasilnya tetap menampilkan teks. Tinjauan yang bertanggung jawab mengumpulkan bukti ACL, kemampuan, kepemilikan, dan penegakan apa pun secara terpisah sebelum memperlakukan mode tersebut sebagai akun kontrol akses yang lengkap.

ACL dan kemampuan berada di luar model mode yang diterapkan

Kumpulan sumber ini tidak berisi perbandingan yang didukung dengan Windows, VMS, Paket 9, atau riwayat izin sistem operasi lainnya. Menghilangkan narasi-narasi tersebut lebih akurat daripada menampilkan kontras-kontras yang diingat sebagai fakta. Kalkulator hanya mendemonstrasikan representasi mode yang diterapkannya, dan pengujiannya dapat menentukan perilaku konversi, bukan evolusi sistem yang tidak terkait.

Kehati-hatian yang sama berlaku untuk bahasa kompatibilitas luas. Karakter tipe file utama yang dikenali dapat diurai sebelum sembilan posisi izin, tetapi itu tidak membuktikan pemformatan ls universal. Gunakan output sebagai pembacaan yang tepat dari notasi yang diterima alat ini, lalu lihat dokumentasi platform resmi untuk mengetahui perilaku di luar batas yang didukung sumber ini.

Riwayat izin sistem operasi lainnya dihilangkan tanpa sumber

Yang masih perlu diperhatikan di sini adalah kekompakan model yang diterapkan. Dua belas bit bernama mencakup tiga kelas izin biasa dan tiga bendera khusus, sedangkan tampilan oktal dan simbolis menampilkan bilangan bulat yang sama dalam bentuk berbeda. Digit yang tidak valid atau huruf simbolik yang salah tempat akan ditolak daripada diperbaiki secara diam-diam, sehingga kesalahan akan terlihat selama konversi.

Itu cukup untuk pelajaran praktis tanpa pelajaran sejarah. Dekode mode, periksa setiap kelas, dan perhatikan apakah s, S, t, atau T menggantikan posisi eksekusi. Kemudian berhenti ketika bukti berhenti: kalkulator menjelaskan representasi dan teks yang dihasilkan, sementara kepemilikan, kebijakan, perilaku sistem file, dan asal historis memerlukan sumber lain.