เครื่องมือสำหรับนักพัฒนา · เครื่องคิดเลข Chmod
chmod -R ด้วยตัวพิมพ์ใหญ่ X: การอนุญาตแบบเรียกซ้ำโดยไม่มีไฟล์ปฏิบัติการ
· มันทำงานอย่างไร
chmod ยูนิกซ์ นักพัฒนาเวิร์กโฟลว์
chmod แบบเรียกซ้ำจะดึงข้อมูลจากไดเร็กทอรีหรือเพิ่มลงในไฟล์ เว้นแต่คุณจะใช้เครื่องมือที่สร้างขึ้นเพื่อความแตกต่าง โพสต์นี้อธิบายเมืองหลวง X และทางเลือกในการค้นหา
ตอนนี้ทุกไฟล์ในแผนผังถูกทำเครื่องหมายว่าปฏิบัติการได้ - chmod -R 755 แก้ไขไดเรกทอรีและทำให้ทุก .txt ปฏิบัติการได้เช่นกัน
คำสั่งแบบเรียกซ้ำสามารถกำหนดโหมดหนึ่งให้กับอ็อบเจ็กต์ที่ต้องการสิทธิ์ที่แตกต่างกัน ป้อน 755 แล้วเครื่องคิดเลขจะแสดงผล rwxr-xr-x จากนั้นเปรียบเทียบคำอธิบายไฟล์ปกติและไดเร็กทอรี Execute อนุญาตให้ไฟล์ทำงานเป็นโปรแกรม แต่อนุญาตให้ป้อนไดเร็กทอรีและเข้าถึงเนื้อหาที่มีชื่อได้ ดังนั้นตัวเลขหนึ่งหลักจึงมีผลที่ตามมาที่แตกต่างกันอย่างมาก
ตัวสร้างสามารถแสดง -R และอ้างอิงเส้นทางที่ให้มาได้อย่างปลอดภัย แต่จะไม่เปิดเส้นทางนั้นหรือรัน chmod เปรียบเทียบ 755 กับ 644: รายการแรกให้สิทธิ์ดำเนินการกับทุกคลาส ในขณะที่รายการที่สองเรนเดอร์ rw-r--r-- นี่แสดงให้เห็นว่าการเรียกซ้ำอาจสร้างไฟล์ปฏิบัติการที่ไม่ได้ตั้งใจโดยไม่ต้องอ้างสิทธิ์ใดๆ เกี่ยวกับแผนผังไดเร็กทอรีจริงได้อย่างไร
เหตุใดโหมดเดียวจึงไม่สามารถใส่ทั้งสองโหมดได้ — ไฟล์มักจะต้องการ 644 และไดเร็กทอรี 755 และ -R ใช้โหมดเดียวกับทุกสิ่ง
โหมดหนึ่งไม่สามารถแสดงกฎแยกกันสำหรับไดเร็กทอรีและไฟล์ปกติ โหมด 755 ให้เจ้าของอ่าน เขียน และดำเนินการ โดยกลุ่มและกลุ่มอื่นๆ ได้รับการอ่านและดำเนินการ โหมด 644 ลบทุกบิตดำเนินการและสงวนการเขียนสำหรับเจ้าของ ตัวเลือกเป้าหมายจะเปลี่ยนคำอธิบาย ไม่ใช่บิตที่อยู่ด้านล่าง
เปรียบเทียบผู้สมัครอย่างอิสระในเมทริกซ์ ภายใต้ 755 ทุกคลาสมีการดำเนินการ ภายใต้ 644 ทุกช่องดำเนินการจะมีความชัดเจนและมีเพียงเจ้าของเท่านั้นที่ยังคงเขียนอยู่ ข้อความสัญลักษณ์ฐานแปด สรุป และช่องทำเครื่องหมายมาจากจำนวนเต็มหนึ่ง ดังนั้นข้อตกลงจึงยืนยันการเข้ารหัสที่สอดคล้องกัน ไม่เหมาะสำหรับเป้าหมายหรือสภาพแวดล้อมที่ไม่รู้จัก
การอนุญาต X ตัวพิมพ์ใหญ่ - ดำเนินการถูกตั้งค่าเฉพาะเมื่อเป้าหมายเป็นไดเร็กทอรีหรือมีการดำเนินการสำหรับบางคลาสแล้ว
Capital X เป็นของไวยากรณ์คำสั่งเชิงสัญลักษณ์ของ chmod ซึ่งเครื่องคิดเลขนี้ไม่ได้แยกวิเคราะห์หรือสร้าง อินพุตเชิงสัญลักษณ์คือจอแสดงผล ls เก้าอักขระคงที่ และการกำหนดที่สร้างขึ้นใช้คำสั่งย่อย u=, g= และ o= ที่ชัดเจนพร้อมกับ r, w และ x มันสามารถแสดงโหมดสุดท้ายได้ แต่ไม่สามารถตัดสินใจได้ว่า X ตัวพิมพ์ใหญ่ของสมาชิกทรีตัวใดจะเลือก
ถือว่าความแตกต่างนั้นเป็นขอบเขตที่มั่นคง ป้อน 755 เพื่อตรวจสอบ rwxr-xr-x และ 644 เพื่อตรวจสอบ rw-r--r--; ทั้งสองอย่างเป็นผลลัพธ์ที่คงที่ หน้านี้อธิบายการดำเนินการที่แตกต่างกันสำหรับไดเร็กทอรีและไฟล์ แต่ไม่มีพาธวอล์คเกอร์ พิมพ์รายการสินค้าคงคลัง หรือสถานะการดำเนินการก่อนหน้า ไม่สามารถจำลองตัวพิมพ์ใหญ่ X ในเป้าหมายแบบเรียกซ้ำแบบผสมได้
Capital X เป็นของไวยากรณ์ chmod แต่ไม่ได้สร้างขึ้นโดยเครื่องคิดเลขนี้
การเปรียบเทียบที่รองรับเริ่มต้นด้วยโหมดที่เสร็จสมบูรณ์ ไม่ใช่คำสั่งสัญลักษณ์แบบเรียกซ้ำ ป้อน 755 สำหรับไดเร็กทอรี: สรุปจะแสดง 0755 และ drwxr-xr-x โดยมีเจ้าของเขียน บวก อ่านและดำเนินการ สำหรับทุกคลาส ป้อน 644 สำหรับไฟล์ โดยจะแสดง 0644 และ -rw-r--r-- โดยไม่มีสิทธิ์ในการดำเนินการ
เคียงข้างกัน ทุกคลาสจะสูญเสียการดำเนินการจาก 755 ถึง 644 ในขณะที่การเขียนของเจ้าของและการอ่านแบบสากลยังคงอยู่ การมอบหมายที่สร้างขึ้นจะแยกจากกัน: u=rwx,g=rx,o=rx และ u=rw,g=r,o=r เครื่องคิดเลขไม่ได้รวมพวกมันเข้าเป็นการดำเนินการแบบเรียกซ้ำเดียวหรือเลือกเป้าหมาย จะตรวจสอบการรับรองสำหรับขั้นตอนการทำงานที่ได้รับการตรวจสอบแยกต่างหาก
ตัวอย่างการทำงาน: เปรียบเทียบผลลัพธ์ของโหมด 755 และ 644 แยกกัน
การแบ่งไฟล์และไดเร็กทอรีด้วย find เป็นขั้นตอนการทำงานภายนอก ไม่ใช่คุณสมบัติเครื่องคิดเลข หน้านี้ไม่มีเครื่องสแกน ตัวกรองเส้นทาง การทดสอบประเภท หรือตัวดำเนินการ มันสามารถถอดรหัสไดเร็กทอรีและโหมดไฟล์ที่เสนอแทนก่อนที่จะประกอบคำสั่ง การตรวจสอบ 755 และ 644 แยกกันจะป้องกันไม่ให้หมายเลขที่คุ้นเคยปกปิดการอนุญาตดำเนินการ
แยกการค้นพบออกจากการแปลง กลไกการเลือกไดเร็กทอรีหรือไฟล์ปกติจะต้องได้รับการตรวจสอบที่อื่น ภายในเครื่องคิดเลข เลขคณิตถูกกำหนดไว้: การอ่านมีส่วนช่วย 4 เขียน 2 และดำเนินการ 1 ให้กับแต่ละหลักชั้นเรียน สิ่งนี้จะตรวจสอบค่าที่ต้องการโดยไม่ต้องอ้างสิทธิ์การสนับสนุนสำหรับไวยากรณ์การค้นหา กฎการข้ามผ่าน หรือพฤติกรรมการเรียกซ้ำแบบพกพา
การเรียกซ้ำตามการค้นหาเป็นเวิร์กโฟลว์ภายนอก ไม่ใช่คุณลักษณะเครื่องคิดเลข
คำสั่งแบบเรียกซ้ำที่แสดงไม่รับประกันสิ่งใดเกี่ยวกับลิงก์สัญลักษณ์ การเลือก “ใช้แบบเรียกซ้ำ” เพียงเพิ่ม -R ลงในหน้าตัวอย่าง มันไม่ได้ตรวจสอบไดเร็กทอรี ค้นหาลิงก์ หรือทำนายพฤติกรรมของระบบปฏิบัติการ ฟิลด์พาธสร้างเฉพาะข้อความเชลล์ที่ยกมาเท่านั้น แม้แต่อักขระเชลล์ที่ใช้งานอยู่ก็ยังคงเฉื่อยจนกว่าจะมีคนจงใจคัดลอกและดำเนินการคำสั่งที่อื่น
อ่านตัวอย่างเป็นบิตของโหมดที่ร้องขอ ไม่ใช่การจำลอง เครื่องคิดเลขสามารถแสดงผล 755 เป็น rwxr-xr-x และสร้าง chmod -R 755 ด้วยเส้นทางที่ยกมา ไม่สามารถระบุอ็อบเจ็กต์ที่เข้าถึง พฤติกรรมการติดตามลิงก์ หรือการสนับสนุนระบบไฟล์ได้ คำตอบเหล่านั้นจำเป็นต้องมีการนำคำสั่งไปใช้จริงและสภาพแวดล้อม ซึ่งไม่ได้แสดงโดยอินพุตของเบราว์เซอร์
คำสั่ง -R ที่แสดงไม่มีการรับประกัน symlink ข้ามแพลตฟอร์ม
การเก็บรักษาโหมดโดยการเก็บถาวร เครื่องมือการซิงโครไนซ์ หรือ Git อยู่นอกแหล่งที่มา เครื่องคิดเลขไม่อ่านข้อมูลที่เก็บถาวร ข้อมูลเมตาของพื้นที่เก็บข้อมูล หรือประวัติการถ่ายโอน โดยยอมรับค่าเดียวและแสดงผลฐานแปด ข้อความเชิงสัญลักษณ์ ช่องทำเครื่องหมาย ร้อยแก้ว และคำสั่ง chmod ซึ่งจะตรวจสอบค่าสิทธิ์ที่ให้มา ไม่ใช่ว่าเครื่องมืออื่นจะบันทึก ละทิ้ง หรือสร้างใหม่หรือไม่
หลังจากการถ่ายโอนภายนอกเปลี่ยนโหมด ให้ใช้เครื่องคิดเลขเฉพาะสำหรับความแตกต่างที่พิสูจน์ได้เท่านั้น ถอดรหัสค่าที่สังเกตและค่าที่คาดหวัง จากนั้นระบุเจ้าของ กลุ่ม หรือบิตอื่นๆ ที่เปลี่ยนแปลง ตัวอย่างเช่น 755 และ 644 ต่างกันในตำแหน่งการดำเนินการทั้งหมด แหล่งที่มาไม่สามารถระบุแหล่งที่มาของเดลต้านั้นว่าเป็น rsync, tar, Git, umask หรือระบบไฟล์
การเก็บรักษาโหมด Archive, rsync และ Git อยู่นอกชุดซอร์ส
Takeaway ที่เชื่อถือได้นั้นแคบกว่าสูตร Capital-X ไดเร็กทอรีและไฟล์อาจต้องการโหมดสุดท้ายที่แตกต่างกัน และเครื่องคำนวณจะทำให้แต่ละผลลัพธ์อ่านได้ชัดเจน ยอมรับอินพุตสัญลักษณ์ฐานแปดหรือคงที่และซิงโครไนซ์เมทริกซ์ ในการเปรียบเทียบนี้ 755 จะคงการดำเนินการไว้สำหรับทุกคลาส ในขณะที่ 644 จะลบการดำเนินการทุกที่
ใช้ผลลัพธ์ที่สร้างขึ้นเป็นสิ่งประดิษฐ์ในการทบทวน เพจอาจเพิ่ม -R แต่ไม่สามารถเลือกไดเร็กทอรีตามเงื่อนไข ตรวจสอบบิตดำเนินการที่มีอยู่ หรือพิจารณาการแวะผ่านลิงก์ นอกจากนี้ยังขาดความเป็นเจ้าของ ACL และบริบทของนโยบาย ตรวจสอบผลลัพธ์คงที่แต่ละรายการ ยืนยันข้อตกลงฐานแปดและสัญลักษณ์ จากนั้นตรวจสอบเป้าหมายจริงก่อนที่จะใช้โหมดใดๆ