Seperti jawaban sebelumnya mengatakan, pewarnaan adalah untuk menunjukkan apakah file dianggap dapat dieksekusi atau tidak.
Izin "eksekusi" (= bit) di Linux dan sebagian besar Unix lainnya memiliki satu arti untuk file dan lainnya untuk direktori.
Untuk direktori, jika Anda memiliki izin untuk menjalankannya, Anda dapat melihat isinya. Jika tidak, Anda tidak dapat melakukan cd ke direktori, atau Anda dapat membuat daftar file di dalamnya, bahkan jika Anda memiliki akses baca dan tulis ke direktori.
Untuk file biasa (tidak seperti file perangkat dan jenis file Unix khusus lainnya), bit eksekusi berarti bahwa jika Anda menggunakan nama file pada baris perintah, O / S (atau lebih tepatnya: shell) akan mencoba "mengeksekusi" atau menjalankan file sebagai perintah. Sebaliknya, jika Anda tidak memiliki izin untuk mengeksekusi file, Anda tidak dapat menjalankannya dari baris perintah.
Jadi, jika Anda, misalnya, menghapus izin x dari semua pengguna pada file / bin / cat (yang merupakan perintah Unix) Anda sendiri atau siapa pun dan program apa pun yang mencoba menggunakan perintah "cat" akan gagal.
Itu adalah perintah OS, seperti "cat" dan "grep", yang memiliki file executeble yang biasanya di / * / bin / direktori - / bin, / usr / bin, / sbin, / usr / sbin dll.
Dan kemudian ada skrip yang tidak dikompilasi, ditafsirkan, yang dapat ditulis dalam beberapa bahasa pemrograman, seperti skrip Python atau shell (pada dasarnya, perintah yang Anda tulis seolah-olah dari commandline saat sshing ke server).
Sekarang, ketika Anda menetapkan bit eksekusi pada file skrip (misalnya, file foobar), dan mencoba mengeksekusinya dengan shell Anda: "./foobar", shell mencoba menganalisis file dan menemukan program yang benar untuk meneruskan skrip untuk.
Shell ini melakukannya dengan mencoba membaca baris pertama file dan menemukan notasi "shebang" dari program mana yang seharusnya dijalankan.
Jadi, jika foobar Anda adalah file teks dengan baris pertama seperti ini:
#!/usr/bin/python
Kemudian shell akan mencoba untuk mengeksekusi perintah /usr/bin/python foobar
:, pada dasarnya memanggil juru bahasa python dan meneruskan nama file foobar Anda ke file tersebut sebagai skrip Python.
Jika shell tidak menemukan baris pertama dalam file Anda, maka shell akan mencoba mengeksekusi foobar itu sendiri seolah-olah berisi perintah shell.
Jika file dengan bit yang dapat dieksekusi tidak mengandung perintah shell yang valid, shell hanya akan mengeluh.
Jadi inilah yang akan terjadi, jika Anda memiliki file TTF dengan set bit exec dan mencoba menjalankannya dari baris perintah:
$./FreeMonoOblique.ttf
-bash: ./FreeMonoOblique.ttf: cannot execute binary file: Exec format error
$
Jadi, untuk font, mungkin lebih rapi, jika bit exec tidak diset, tetapi tidak benar-benar mengubah apa pun.
PS Hanya beberapa informasi asing. Jika Anda menghapus bit eksekusi pada beberapa perintah atau skrip, itu mungkin masih diteruskan ke program lain sebagai argumen. Jika program lain itu tahu, bagaimana menjalankan perintah Anda, penghapusan exec bit Anda tidak terlalu penting. Misalnya, skrip foobar Python masih akan dijalankan oleh juru bahasa Python, jika Anda melakukannya dari baris perintah:
$python foobar
dari pada
$./foobar
Sama dengan contoh perintah sistem, seperti "cat". Jika Anda menghapus bit exec dari "cat", Anda masih bisa meneruskannya ke instance baru shell untuk dieksekusi:
$sh -c 'cat myfile'
akan bekerja, bahkan jika Anda telah menghapus bit exec dari kucing dan
$cat myfile
tidak.