Saya baru-baru ini bertanya-tanya apa perbedaan antara izin file numerik tiga dan empat digit. Saya memperoleh izin numerik dengan menjalankan stat --format "%a" $file_name
. Apa perbedaan antara 0644 dan 644?
Saya baru-baru ini bertanya-tanya apa perbedaan antara izin file numerik tiga dan empat digit. Saya memperoleh izin numerik dengan menjalankan stat --format "%a" $file_name
. Apa perbedaan antara 0644 dan 644?
Jawaban:
Digit pertama dalam izin empat digit adalah jumlah dari id pengguna yang ditetapkan (4), kelompok id yang ditetapkan (2) dan sticky (1). Izin tiga digit sama seperti izin empat digit dengan digit pertama disetel ke nol. Jadi:
Jika file dengan set ID pengguna dieksekusi, maka dieksekusi seolah-olah oleh pemilik file daripada pengguna yang melakukan eksekusi. Jadi, misalnya, /bin/mount
umumnya dimiliki oleh root dan memiliki izin 4755 di mana 4 menandakan bahwa, bahkan jika dijalankan oleh pengguna normal, itu akan berjalan dengan hak istimewa pemilik (root).
Mengatur ID grup pada direktori berguna untuk berbagi file.
Bit sticky digunakan pada direktori seperti /tmp
sehingga semua pengguna dapat membuat file tetapi mencegah non-pemilik menghapus file orang lain. Dengan demikian, izin /tmp
biasanya 1777 di mana 1 menandakan bahwa bit lengket diatur.
Dari man chmod
:
Mode numerik adalah dari satu hingga empat digit oktal (0-7), diturunkan dengan menjumlahkan bit dengan nilai 4, 2, dan 1. Digit yang dihilangkan dianggap sebagai nol di depan. Digit pertama memilih ID pengguna yang ditetapkan (4) dan ID grup yang ditetapkan (2) dan penghapusan yang dihapus atau atribut lengket (1). Digit kedua memilih izin untuk pengguna yang memiliki file: baca (4), tulis (2), dan jalankan (1); yang ketiga memilih izin untuk pengguna lain dalam grup file, dengan nilai yang sama; dan yang keempat untuk pengguna lain yang tidak ada dalam grup file, dengan nilai yang sama.