Bash bir tercümandır; girdiyi kabul eder ve ne isterse yapar. Yürütülebilir biti dikkate alması gerekmez. Aslında, Bash taşınabilirdir ve çalıştırılabilir bir bit kavramına sahip olmayan işletim sistemleri ve dosya sistemlerinde çalışabilir.
Yürütülebilir bit ile ilgilenen, işletim sistemi çekirdeğidir. exec
Örneğin, Linux çekirdeği bir dosya gerçekleştirdiğinde, dosya sisteminin bir noexec
seçenekle donatılmadığını kontrol eder, program dosyasının çalıştırılabilir bitini denetler ve güvenlik modülleri (SELinux veya AppArmor gibi) tarafından uygulanan gereklilikleri uygular.
Çalıştırılabilir bit'in isteğe bağlı bir denetim türü olduğunu unutmayın. Örneğin, bir Linux x86-64 sisteminde, tercüman olarak açıkça çağırarak/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
çekirdeğin çalıştırılabilir biti doğrulamasını atlayabilirsiniz :
cp /bin/ls /tmp/
chmod -x /tmp/ls
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /tmp/ls
Bu, ld.so
tercüman olması haricinde, Bash'deki Bash kaynak kodunun kaynaklanmasına biraz benzerdir ve çalıştırdığı kod, ELF biçimindeki makine kodudur.
chmod
Sekizli bir sayı ile izinleri (`x dahil) ayarlamanıza izin vermesi gerçeği, hangi dönemin geldiği konusunda bazı ipuçları verir. Bu hızlı ve kirli olarak başlayan eğer sürpriz olmaz dişi patlama icat edilmeden önce gün, gösterge "bu yürütebileceği bir ikili dosyadır", ama bu hiçbir kanıt var