เครื่องมือสำหรับนักพัฒนา · เครื่องคิดเลข Chmod
สองชีวิตของ Sticky Bit: จากข้อความ swap-resident ไปจนถึง /tmp
· พื้นหลัง
chmod ยูนิกซ์ การควบคุมการเข้าถึง
t ในโหมด /tmp's หมายถึงบางสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิงใน Unix ปี 1970 โพสต์นี้จะติดตามคำแนะนำเกี่ยวกับประสิทธิภาพไปจนถึงกฎการลบ และอธิบายสิ่งที่ทำในวันนี้
drwxrwxrwt บน /tmp — ตัวอักษรตัวสุดท้ายไม่ใช่ r, w หรือ x และคำอธิบายเพียงคำเดียวตามปกติไม่ได้อธิบายอะไรเลย
สตริง drwxrwxrwt แสดงให้เห็นว่าเหตุใดเลขคณิต rwx ธรรมดาจึงไม่ใช่เรื่องราวทั้งหมด Sticky คือ 1000 bit ซึ่งแสดงผลในตำแหน่งดำเนินการสุดท้าย ด้วยการดำเนินการอื่น ๆ อักขระจะเป็นตัวพิมพ์เล็ก t; หากไม่มีมัน ตัว T ใหญ่จะปรากฏขึ้น ดังนั้นการป้อน 1777 จะสร้าง rwxrwxrwt ในขณะที่การสรุปสี่หลักจะรักษาตัวเลขบิตพิเศษนำหน้าไว้
จอแสดงผลนี้จะแปลงโหมดที่ให้มา มันไม่ได้ตรวจสอบไดเร็กทอรี เพจจะแบ่งค่าหนึ่งค่าเป็นเจ้าของ กลุ่ม อื่นๆ และบิตพิเศษ จากนั้นสร้างทุกมุมมองจากส่วนเหล่านั้นขึ้นมาใหม่ ข้อตกลงของพวกเขาจะตรวจสอบเลขคณิต ไม่ใช่ความเป็นเจ้าของ ACL หรือนโยบายระบบไฟล์ คำสั่ง chmod ที่สร้างขึ้นยังคงเป็นข้อความธรรมดาจนกว่าจะมีคนเรียกใช้คำสั่งที่อื่น
ความหมายดั้งเดิม — เก็บส่วนของข้อความของโปรแกรมไว้สลับกันหลังจากออก เพื่อให้การรันครั้งถัดไปเริ่มต้นเร็วขึ้นบนดิสก์ที่ช้า
คำอธิบายไฟล์ปกติบอกว่าเหนียวเมื่อร้องขอให้ข้อความของโปรแกรมยังคงอยู่ในการแลกเปลี่ยน นั่นคือการกล่าวอ้างทางประวัติศาสตร์โดยสมบูรณ์ที่ได้รับการสนับสนุนจากแหล่งข้อมูลเหล่านี้ พวกเขาไม่ได้อ้างถึงคู่มือ Unix หลัก, วันที่, ระบบที่กำหนดชื่อ หรือการวัดผลการยอมรับ บัญชีที่ระมัดระวังสามารถเปรียบเทียบความหมายไฟล์เดิมกับลักษณะการทำงานของไดเร็กทอรีปัจจุบัน โดยไม่ต้องสร้างประวัติระบบปฏิบัติการที่กว้างขึ้น
เครื่องคิดเลขจะกำหนดวิธีการแสดงบิต Sticky ครอบครองฐานแปด 1000 และแบ่งปันตำแหน่งการดำเนินการอื่นในรูปแบบสัญลักษณ์ ดังนั้น 1777 ลงท้ายด้วย t เนื่องจากมีการตั้งค่าการเรียกใช้งาน ในขณะที่ 1644 ลงท้ายด้วย T เนื่องจากไม่มีอยู่ บิตมาสก์, parser, renderer และการทดสอบแบบไปกลับสนับสนุนข้อเท็จจริงเหล่านั้น ไม่ใช่ลำดับเหตุการณ์ของพฤติกรรมเคอร์เนล
แหล่งที่มาอธิบายคำใบ้ไฟล์เดิม แต่ไม่มีการอ้างอิงประวัติหลัก
สำหรับไฟล์ทั่วไป เครื่องมือจะอธิบายว่า Sticky เป็นคำใบ้การแลกเปลี่ยนในอดีตที่เคอร์เนลสมัยใหม่มองข้าม ถ้อยคำไม่ควรถือเป็นการอ้างสิทธิ์สากลเกี่ยวกับทุกเคอร์เนลหรือระบบไฟล์ พื้นที่เก็บข้อมูลนี้มีคำอธิบายเกี่ยวกับเครื่องคิดเลข ไม่ใช่แบบสำรวจแพลตฟอร์ม จุดที่ป้องกันได้แคบกว่า: Sticky จะไม่เปลี่ยนแปลงสิทธิ์การอ่าน เขียน หรือดำเนินการที่แสดงสำหรับไฟล์ปกติ
การเป็นตัวแทนยังคงถูกต้องแม้ว่าจะไม่มีการอ้างสิทธิ์ในการบังคับใช้ก็ตาม สำหรับชุดการดำเนินการอื่น อักขระตัวสุดท้ายคือ t; หากไม่มีมัน ตัวละครนั้นก็คือ T ตัวแยกวิเคราะห์จะคืนค่าแบบฟอร์มใดรูปแบบหนึ่งเป็นบิตเหนียว และการทดสอบครอบคลุม 1777, 1644 และทุกโหมดผ่าน 7777 ไม่มีการเปิดตัวโปรแกรม ติดตั้งระบบไฟล์ หรือสอบถามเคอร์เนลเพื่อดูการทำงานจริง
คำอธิบายไฟล์ปกติบอกว่าเคอร์เนลสมัยใหม่ไม่สนใจความเหนียว ไม่มีการเรียกร้องสากล
พฤติกรรมของไดเร็กทอรีคือการใช้งานสมัยใหม่ที่อธิบายการใช้งานโดยตรง ในไดเร็กทอรีที่แชร์ Sticky จะเพิ่มข้อจำกัดการลบและเปลี่ยนชื่อ: ผู้คนสามารถสร้างรายการได้ แต่การลบจะจำกัดอยู่เฉพาะเจ้าของหรือรูทของรายการเท่านั้น ค่าที่ตั้งล่วงหน้าจะจับ 1777 เป็นรูปแบบ /tmp ในขณะที่คำอธิบายจะเตือนเมื่อทุกคนสามารถเขียนไดเร็กทอรีได้โดยไม่เหนียวเหนอะหนะ
จอแสดงผลเผยให้เห็นความแตกต่างนั้นโดยไม่ต้องอ้างสิทธิ์ในการตรวจสอบ /tmp. โหมด 777 และ 1777 แบ่งปันสิทธิ์ทั่วไป rwxrwxrwx การเพิ่ม 1000 จะเปลี่ยนสัญลักษณ์ x สุดท้ายเป็น t และต่อท้าย +t กับการมอบหมายที่สร้างขึ้น เจ้าของ กลุ่ม และทุนสนับสนุนอื่นๆ ยังคงไม่เปลี่ยนแปลง ความเป็นเจ้าของที่แท้จริง ACL และกฎของระบบไฟล์ยังคงอยู่นอกการคำนวณ
พฤติกรรมการติดหนึบของไดเรกทอรีเป็นคำอธิบายที่นำไปใช้ในปัจจุบัน
ประโยคไดเร็กทอรีระบุกฎที่จำกัด: ด้วยชุด Sticky มีเพียงเจ้าของไฟล์หรือรูทเท่านั้นที่สามารถลบหรือเปลี่ยนชื่อไฟล์ได้ เครื่องมือนี้ไม่สามารถแก้ไขข้อมูลประจำตัว ตรวจสอบความเป็นเจ้าของไดเรกทอรี หรือพยายามดำเนินการ 1777 ที่แสดงออกมาจะยืนยันบิต rwx สากลบวกด้วย Sticky แต่ไม่สามารถระบุได้ว่าใครเป็นเจ้าของรายการที่เกี่ยวข้องกับข้อพิพาทที่แท้จริง
นโยบายเพิ่มเติมจะต้องได้รับการตรวจสอบแยกกัน เครื่องคิดเลขไม่อ่าน ACL, ความสามารถ, ตัวเลือกการเมานต์, การควบคุมบังคับ หรือสถานะของระบบไฟล์ การสลับระหว่างไฟล์และไดเร็กทอรีจะเปลี่ยนคำอธิบาย ไม่ใช่โหมด หากการเปลี่ยนชื่อสำเร็จหรือล้มเหลวโดยไม่คาดคิด เพจจะไม่สามารถอธิบายสาเหตุได้ โดยจะแยกเฉพาะบิตดั้งเดิมสำหรับการตรวจสอบเฉพาะระบบเท่านั้น
เครื่องมือนี้จะอธิบายขีดจำกัดการลบเจ้าของหรือรูทโดยไม่ต้องตรวจสอบส่วนขยายนโยบาย
เปรียบเทียบ 1777 และ 777 เป็นโหมดไดเรกทอรี โหมด 777 แสดงผล drwxrwxrwx และอนุญาตให้ทุกคลาสแสดงรายการ สร้าง ป้อน เปลี่ยนชื่อ และลบ เครื่องมือเตือนว่าผู้ใช้สามารถลบรายการที่พวกเขาไม่ได้เป็นเจ้าของได้ การเปิดใช้งาน Sticky จะสร้าง drwxrwxrwt: การให้สิทธิ์ rwx ยังคงคงที่ ในขณะที่ข้อจำกัดการลบเจ้าของหรือรูทเข้าสู่คำอธิบาย
การมอบหมายที่สร้างขึ้นจะแสดงความแตกต่างเพียงบิตเดียวที่เหมือนกัน โหมด 777 กลายเป็น u=rwx,g=rwx,o=rwx ในขณะที่ 1777 เพิ่ม +t; การแสดงตัวอย่างฐานแปดยังคงรักษาตัวเลขนำหน้าไว้ การแสดงตัวอย่างไม่เปิดเส้นทางหรือดำเนินการ chmod การเปรียบเทียบพิสูจน์ให้เห็นว่ามีเพียง 1000 เท่านั้นที่เปลี่ยนแปลงและอธิบายรูปแบบ t แต่ความเป็นเจ้าของและการบังคับใช้ยังคงต้องมีการตรวจสอบจากภายนอก
ตัวอย่างการทำงาน: เปรียบเทียบคำอธิบาย 1777 และ 777 ในเครื่องคิดเลข
สื่อเหล่านี้ไม่รองรับประวัติ Setgid พื้นที่เก็บข้อมูลสามารถเข้ารหัส setgid เป็น 2000 แสดงผล s หรือ S ในตำแหน่งการดำเนินการกลุ่ม และอธิบายการสืบทอดกลุ่มไดเร็กทอรี รายละเอียดการใช้งานเหล่านั้นไม่ได้จัดทำเอกสารต้นกำเนิดของ setgid หรือเชื่อมโยงการพัฒนาเข้ากับ Sticky เลขคณิตสำหรับบิตพิเศษหนึ่งไม่ใช่หลักฐานทางประวัติศาสตร์เกี่ยวกับอีกบิตหนึ่ง
นโยบายไดเรกทอรีที่ได้รับการคุ้มครองยังอยู่นอกเหนือชุดแหล่งที่มาอีกด้วย หน้านี้อ่านว่าไม่มีการตั้งค่า fs.protected การกำหนดค่าระบบ ACL บันทึกความเป็นเจ้าของ หรือความพยายามดำเนินการ สามารถยืนยันได้ว่าโหมดที่ให้มามี Sticky และแสดงค่าพื้นฐาน แต่ไม่สามารถรับรองได้ว่า Sticky เป็นข้อจำกัดเดียวของเครื่อง การวินิจฉัยที่กว้างขึ้นจำเป็นต้องมีหลักฐานจากสภาพแวดล้อมนั้น
ประวัติ Setgid และนโยบายไดเรกทอรีที่ได้รับการป้องกันยังคงอยู่นอกชุดแหล่งที่มา
ความแตกต่างในทางปฏิบัติเหมาะกับตัวละครตัวเดียว สำหรับไดเร็กทอรี t บันทึกแบบติดหนึบกับการดำเนินการอื่น ๆ ในขณะที่ T บันทึกแบบติดหนึบโดยไม่มีบิตเรียกใช้งานนั้น เครื่องคิดเลขจะเก็บทั้งสองรูปแบบไว้และแสดง 1000 ไว้ในข้อมูลสรุป แหล่งที่มายังกล่าวถึงคำใบ้ไฟล์ปกติในอดีต แต่มีหลักฐานหลักน้อยเกินไปที่จะสนับสนุนลำดับเหตุการณ์ทางประวัติศาสตร์สากล
ใช้หน้านี้เพื่อยุติการเป็นตัวแทนก่อนโต้วาทีนโยบาย เข้าสู่โหมด เลือกไฟล์หรือไดเร็กทอรี และเปรียบเทียบฐานแปด สัญลักษณ์ เมทริกซ์ สรุป และการกำหนด ข้อตกลงยืนยันการแปลงสิบสองบิตที่สอดคล้องกัน หยุดเพียงแค่นั้นเว้นแต่ระบบเป้าหมายจะให้หลักฐานเพิ่มเติม: เครื่องมือระบุว่าไม่มีผู้ใช้ ไม่อ่านเส้นทาง ไม่ดำเนินการคำสั่ง และไม่ตรวจสอบส่วนขยายนโยบาย