Perbedaan antara izin file tiga dan empat digit?

11

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?

NerdOfCode
sumber
Saya bertanya-tanya perbedaan antara izin file empat dan tiga digit ...
NerdOfCode

Jawaban:

11

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:

  • 0644 persis sama dengan 644.
  • 1644 seperti 644 tetapi bit lengket juga diatur
  • 4644 seperti 644 tetapi bit ID pengguna yang diset juga ditetapkan.

Contoh penggunaan untuk izin digit keempat

Jika file dengan set ID pengguna dieksekusi, maka dieksekusi seolah-olah oleh pemilik file daripada pengguna yang melakukan eksekusi. Jadi, misalnya, /bin/mountumumnya 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 /tmpsehingga semua pengguna dapat membuat file tetapi mencegah non-pemilik menghapus file orang lain. Dengan demikian, izin /tmpbiasanya 1777 di mana 1 menandakan bahwa bit lengket diatur.

Dokumentasi

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.

John1024
sumber