เชลล์สคริปต์ต้องการสิทธิ์ในการอ่านที่จะดำเนินการ แต่ไฟล์ไบนารีไม่:
$ 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
การแสดงเนื้อหาของไฟล์และดำเนินการเป็นสองสิ่งที่แตกต่างกัน ด้วยเชลล์สคริปต์สิ่งเหล่านี้เกี่ยวข้องกันเพราะมัน "ถูกเรียกใช้" โดย "อ่าน" มันเป็นเชลล์ใหม่ (หรืออันปัจจุบัน) ถ้าคุณจะให้อภัยการทำให้เข้าใจง่าย นี่คือเหตุผลที่คุณต้องอ่าน ไบนารีไม่ใช้กลไกนั้น
สำหรับไดเรกทอรีการอนุญาตให้ดำเนินการจะแตกต่างกันเล็กน้อย หมายความว่าคุณสามารถทำสิ่งต่าง ๆ กับไฟล์ภายในไดเรกทอรีนั้น (เช่นอ่านหรือดำเนินการ) ดังนั้นสมมติว่าคุณมีชุดเครื่องมือ/tools
ที่คุณต้องการให้ผู้คนสามารถใช้ แต่ถ้าพวกเขารู้เกี่ยวกับพวกเขา chmod 711 /tools
. จากนั้นสิ่งที่/tools
สามารถดำเนินการได้จะสามารถทำงานได้อย่างชัดเจน (เช่น/tools/mytool
) แต่ls /tools/
จะถูกปฏิเสธ ในทำนองเดียวกันเอกสารอาจถูกจัดเก็บ/private-docs
ซึ่งสามารถอ่านได้หากรู้ชื่อไฟล์เท่านั้น