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 /tools
yang Anda inginkan agar orang dapat menggunakannya, tetapi hanya jika mereka mengetahuinya. chmod 711 /tools
. Maka hal-hal yang /tools
dapat dieksekusi di dapat dijalankan secara eksplisit (misalnya /tools/mytool
), tetapi ls /tools/
akan ditolak. Demikian pula, dokumen dapat disimpan di /private-docs
mana dapat dibaca jika dan hanya jika nama file diketahui.