Skrip Shell memerlukan izin baca untuk dijalankan, tetapi file biner tidak:
$ cat hello.cpp
#include<iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
return 0;
}
$ g++ -o hello hello.cpp
$ chmod 100 hello
$ ./hello
Hello, world!
$ file hello
hello: executable, regular file, no read permission
Menampilkan konten file dan mengeksekusinya adalah dua hal yang berbeda. Dengan skrip shell, hal-hal ini terkait karena mereka "dieksekusi" dengan "membacanya" menjadi shell baru (atau yang sekarang), jika Anda akan memaafkan penyederhanaan. Inilah sebabnya mengapa Anda harus bisa membacanya. Biner tidak menggunakan mekanisme itu.
Untuk direktori, izin eksekusi sedikit berbeda; itu berarti Anda dapat melakukan hal-hal pada file di dalam direktori tersebut (misalnya membaca atau menjalankannya). Jadi katakanlah Anda memiliki seperangkat alat /toolsyang Anda inginkan agar orang dapat menggunakannya, tetapi hanya jika mereka mengetahuinya. chmod 711 /tools. Maka hal-hal yang /toolsdapat dieksekusi di dapat dijalankan secara eksplisit (misalnya /tools/mytool), tetapi ls /tools/akan ditolak. Demikian pula, dokumen dapat disimpan di /private-docsmana dapat dibaca jika dan hanya jika nama file diketahui.