การอนุญาตสำหรับไฟล์:
chmod 664 myFile // rw-rw-r--
และสำหรับโฟลเดอร์:
chmod 774 myFolder // rwxrwxr--
หากฉันใช้สิทธิ์ "อ่านและเขียน" เท่านั้นโฟลเดอร์จะไม่แสดงเนื้อหาของพวกเขา
เหตุผลนี้คืออะไร
การอนุญาตสำหรับไฟล์:
chmod 664 myFile // rw-rw-r--
และสำหรับโฟลเดอร์:
chmod 774 myFolder // rwxrwxr--
หากฉันใช้สิทธิ์ "อ่านและเขียน" เท่านั้นโฟลเดอร์จะไม่แสดงเนื้อหาของพวกเขา
เหตุผลนี้คืออะไร
คำตอบ:
เนื่องจากคุณไม่สามารถ 'เรียกใช้งาน' ไดเรกทอรีไดเรคทอรีบิตจึงถูกใช้เพื่อประโยชน์ที่ดีกว่า บิตเรียกใช้บนไดเรกทอรีช่วยให้คุณสามารถเข้าถึงรายการที่อยู่ภายในไดเรกทอรีแม้ว่าคุณจะไม่สามารถแสดงรายการเนื้อหาของไดเรกทอรี
$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!
จากchmod
manpage:
ตัวอักษร rwxXst เลือกบิตโหมดไฟล์สำหรับผู้ใช้ที่ได้รับผลกระทบ: อ่าน (r), เขียน (w), เรียกใช้ (หรือค้นหาไดเรกทอรี) (x) , เรียกใช้ / ค้นหาเฉพาะในกรณีที่ไฟล์เป็นไดเรกทอรีหรือมีสิทธิ์ดำเนินการบางอย่างแล้ว ผู้ใช้ (X), ตั้งค่า ID ผู้ใช้หรือกลุ่มในการดำเนินการ, การตั้งค่าสถานะการลบที่ จำกัด หรือบิตเหนียว (t)
ไดเรกทอรี (โดยทั่วไปมักจะไม่เรียกว่าโฟลเดอร์ใน * nix) มีความหมายแตกต่างกันไปสำหรับบิตการอนุญาตมากกว่าไฟล์ปกติ
สำหรับไดเรกทอรีเขียนอนุญาตให้สร้างไฟล์ใหม่ภายใน
อนุญาตให้คุณอ่านรายการไฟล์ที่อยู่ภายใน
ดำเนินการช่วยให้คุณสามารถป้อนและเข้าถึงไฟล์ (หรือไดเรกทอรีอื่น ๆ ) ภายใน
ดำเนินการการอนุญาตในไดเรกทอรีช่วยให้คุณสามารถข้ามมันสำหรับการใช้ทรัพยากรที่มีอยู่ภายใน
บิต "execute" จริง ๆ แล้วหมายถึง "ค้นหา" เมื่อนำไปใช้กับไดเรกทอรี (จากman chmod
) สิ่งนี้ดูสมเหตุสมผลเนื่องจากการดำเนินการไม่มีความหมายสำหรับไดเรกทอรี
x
บิตบนโฟลเดอร์หมายถึงการจัดทำดัชนีการค้นหา / directory / รายการ; ไม่มีสิ่งใดที่เป็นไปได้ถ้าคุณลดระดับลง
นี่คือตัวอย่างของการใช้งานของมัน: ถ้าคุณต้องการที่จะมีผู้ใช้ที่มี จำกัด สิทธิ์อ่านในทุกไดเรกทอรี แต่บ้านของเขาพูด/home/dummy
แล้วคุณจะต้องทำ/
และ/home
มีx
การตั้งค่าบิตมิฉะนั้นเขาไม่สามารถแม้แต่จะได้รับไปยังไดเรกทอรีที่บ้านของเขา
cd
) คุณป้อน (ดำเนินการ) มัน