Kabuk betikleri için okuma izninin yürütülmesi gerekir, ancak ikili dosyalar şunları gerektirmez:
$ 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
Bir dosyanın içeriğini görüntülemek ve yürütmek iki farklı şeydir. Kabuk komut dosyalarında, bunlar basitleştirmeyi affederseniz, bunları yeni bir kabuk (veya geçerli kabuk) içinde "okuyarak" yürütüldükleri için ilişkilidir. Bu yüzden onları okuyabilmeniz gerekir. İkili dosyalar bu mekanizmayı kullanmaz.
Dizinler için yürütme izni biraz farklıdır; Eğer dosyalara şeyler yapmak anlamına gelir içinde (örneğin okumak veya bunları yürütme) bu dizinin. Diyelim ki /tools
insanların kullanabilmesini istediğiniz bir takım araçlarınız var , ancak yalnızca onlar hakkında bilgi sahibi oldukları takdirde. chmod 711 /tools
. Ardından, yürütülebilir dosyalar /tools
açıkça çalıştırılabilir (örn. /tools/mytool
), Ancak ls /tools/
reddedilecektir. Benzer şekilde, /private-docs
yalnızca dosya adları biliniyorsa okunabilecek belgeler saklanabilir .