ไม่มีสัญลักษณ์เวทมนต์ที่นี่ สิทธิ์ดำเนินการข้อมูลที่ไม่ซ้ำซ้อนเสมอ
หากคุณทำสิ่งนี้ในไดเรกทอรีระบบระบบของคุณจะอยู่ในสถานะที่แย่มากเพราะคุณต้องกังวลเกี่ยวกับ setuid และ setgid บิตและเกี่ยวกับไฟล์ที่ไม่ควรอ่านได้ทั่วโลกและเกี่ยวกับไฟล์ ที่ควรจะเป็นกลุ่มหรือโลกที่เขียนได้
ในไดเรกทอรีต่อผู้ใช้คุณต้องกังวลเกี่ยวกับไฟล์ที่ไม่ควรอ่านได้ทั่วโลก ไม่มีใครช่วยคุณได้
สำหรับความสามารถในการปฏิบัติงานกฎข้อที่ดีก็คือการทำให้ทุกอย่างที่ดูเหมือนจะไม่ถูกประหาร เคอร์เนลสามารถเรียกใช้งานสคริปต์ที่มีสองไบต์แรกคือ#!
ELF ไบนารีที่มีสี่ไบต์แรก\x7fELF
โดยที่\x7f
เป็นไบต์ที่มีค่า 12 และประเภทไฟล์ rarer น้อย (a.out สิ่งที่ลงทะเบียนด้วยbinfmt_misc
) ดังนั้นคำสั่งต่อไปนี้ควรคืนค่าการอนุญาตของคุณให้อยู่ในสถานะที่เหมาะสม (สมมติว่าทุบตี 4 หรือ zsh มิฉะนั้นใช้find
เพื่อสำรวจทรีไดเรกทอรี, คำเตือน, พิมพ์ลงในเบราว์เซอร์โดยตรง):
for x in **/*; do
if ! [ -f "$x" ]; then continue; fi # skip all but regular files
case $(head -c 4 "$x") in
"#!"??) :;; # skip script
"\x7fELF") :;; # skip ELF executable
*) chmod a-x "$x";;
esac
done
โปรดทราบว่ามีวิธีง่าย ๆ ในการสำรองและคืนค่าสิทธิ์ของแผนผังไดเรกทอรีบน Linux และอาจรวมถึง Unices อื่น ๆ ที่มีการสนับสนุน ACL:
getfacl -R >saved-permissions
setfacl --restore=saved-permissions
/
หรือในไดเรกทอรีอื่นหรือไม่?