ไทย

เครื่องมือสำหรับนักพัฒนา · เครื่องคิดเลข Chmod

อธิบายโหมด chmod ทั่วไป: 644, 755, 600, 700, 2775 และ 1777

· พื้นหลัง

chmod ยูนิกซ์ การควบคุมการเข้าถึง

โหมดที่ตั้งไว้ล่วงหน้าจะแสดงเป็นไดอะแกรมบิตสิทธิ์ Unix ที่แตกต่างกัน
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

โหมดจำนวนหนึ่งครอบคลุมเกือบทุกไฟล์ที่คุณเคยตั้งค่าไว้ โพสต์นี้จะอธิบายความหมายของ rwx ของแต่ละคน รูปแบบเบื้องหลัง และสถานการณ์ที่เป็นตัวเลือกที่เหมาะสม

มีตัวเลขหกตัวเหมือนกันทุกที่ — บทช่วยสอนบอกว่า 644 หรือ 755 โดยไม่เคยอธิบายตัวเลือกเลย

หมายเลข chmod ที่คุ้นเคยจะมีประโยชน์เมื่อมองเห็นบิตได้ รายการที่ตั้งไว้ล่วงหน้าประกอบด้วย 644, 600, 755, 700, 775, 1777, 4755 และ 2775 โดยแต่ละรายการมีป้ายกำกับแบบสั้น การเลือกหนึ่งไดรฟ์ตัวเรนเดอร์มาตรฐาน การอัปเดตเอาต์พุตสัญลักษณ์ เมทริกซ์สิทธิ์ การสรุปสี่หลัก คำอธิบาย และการแสดงตัวอย่างคำสั่งจากค่าที่ตรวจสอบได้ค่าเดียว

ค่าที่ตั้งล่วงหน้าไม่ใช่การตัดสินใจเชิงนโยบาย หน้านี้ไม่ทราบความเป็นเจ้าของเป้าหมายหรือกลุ่มกระบวนการ รายการ ACL การเข้าถึงไดเรกทอรีหลัก หรือพฤติกรรมของระบบไฟล์ บทความ 501 ให้ระเบียบวินัยที่ดีกว่า: เริ่มต้นด้วยการระบุตัวตนและการดำเนินการที่ล้มเหลว ค่าที่ตั้งล่วงหน้าเสนอค่าเริ่มต้นที่สามารถทำซ้ำได้ แต่วัตถุจริงและสภาพแวดล้อมจะกำหนดว่าโหมดนั้นเหมาะสมหรือไม่

644 และ 755: ค่าเริ่มต้น — rw-r--r-- สำหรับข้อมูล rwxr-xr-x สำหรับไดเรกทอรีและโปรแกรม และเหตุใด umask 022 จึงสร้างสิ่งเหล่านี้ทุกประการ

รายการที่จัดส่งจะแสดง 644 สำหรับไฟล์ธรรมดาและ 755 สำหรับโปรแกรมหรือไดเร็กทอรี ไม่ใช่ค่าเริ่มต้นสากล โหมด 644 คือ rw-r--r--: เจ้าของอ่านและเขียน ในขณะที่กลุ่มและการอ่านอื่น ๆ โหมด 755 คือ rwxr-xr-x: เจ้าของมี rwx ในขณะที่กลุ่มและอื่น ๆ ได้รับการอ่านและดำเนินการ ทั้งสองติดตาม 4-2-1 เลขคณิต

ประเภทเป้าหมายอธิบายว่าเหตุใดตัวเลขจึงไม่มีความหมายในการดำเนินงานที่สมบูรณ์ ในไฟล์ Execution หมายถึงการรันโปรแกรม ในไดเร็กทอรี มันหมายถึงการป้อนและเข้าถึงรายการที่มีชื่อ โหมดจะคงอยู่ 755 ในขณะที่ร้อยแก้วเปลี่ยนไป ไม่มีแหล่งที่มาที่ให้มาคำนวณ umask หรือคาดการณ์โหมดที่สร้างขึ้นใหม่ ดังนั้นค่าเหล่านี้ควรคงคำอธิบายไว้เป็นค่าที่ตั้งไว้ล่วงหน้าที่จัดส่ง แทนที่จะเป็นค่าเริ่มต้นที่หลีกเลี่ยงไม่ได้

644 และ 755 เป็นค่าที่ตั้งล่วงหน้าที่จัดส่ง ไม่ใช่ค่าเริ่มต้นสากล

รายการติดป้ายกำกับ 600 ไฟล์ส่วนตัวและ 700 ไดเรกทอรีส่วนตัว โหมด 600 แสดงผล rw------- ให้เฉพาะเจ้าของอ่านและเขียนเท่านั้น ตัวอย่างคือคีย์ส่วนตัว SSH โหมด 700 แสดงผล rwx------ โดยให้สิทธิ์ทั่วไปทั้งหมดแก่เจ้าของเท่านั้น ในไดเร็กทอรี กลุ่มที่ขาดหายไปและบิตอื่นๆ จะป้องกันไม่ให้คลาสเหล่านั้นแสดงหรือเข้าได้

ส่วนตัว อธิบายบิตสำหรับเจ้าของเท่านั้น ไม่ใช่การตรวจสอบความปลอดภัย เครื่องคิดเลขจะไม่ตรวจสอบความเป็นเจ้าของ ไดเร็กทอรีหลัก ACL กฎการเมาท์ นโยบายบังคับ หรือข้อกำหนดของแอปพลิเคชัน ยืนยันในเมทริกซ์ว่ากลุ่มและกล่องอื่นๆ มีความชัดเจน จากนั้นตรวจสอบสภาพแวดล้อมแยกกัน การแสดงตัวอย่าง chmod ที่ยกมาเป็นเพียงข้อความของเบราว์เซอร์ และไม่ได้ดำเนินการกับเส้นทางที่แสดง

600 และ 700 มีป้ายกำกับส่วนตัวตามรายการที่กำหนดไว้ล่วงหน้า

การแชร์กลุ่มที่อยู่ที่ตั้งไว้ล่วงหน้าสองรายการ โหมด 775 แสดงผล rwxrwxr-x โดยให้สิทธิ์เจ้าของและกลุ่ม rwx ในขณะที่ผู้อื่นได้รับการอ่านและดำเนินการ โหมด 2775 เพิ่ม setgid โดยไม่ต้องเปลี่ยนอเนกประสงค์ธรรมดาเหล่านั้น สำหรับไดเร็กทอรี คำอธิบายระบุว่าไฟล์ใหม่สืบทอดกลุ่มของไดเร็กทอรี เนื่องจากการเรียกใช้งานกลุ่มยังคงตั้งค่าไว้ setgid จะปรากฏเป็นตัวพิมพ์เล็ก s ใน rwxrwsr-x

ค่าที่ตั้งล่วงหน้าไม่ได้เลือกเจ้าของหรือกลุ่ม เพจยอมรับโหมดและพาธการแสดงผลแต่ไม่มีการค้นหาข้อมูลประจำตัวหรือการดำเนินการ chown หมายเหตุ 775 แนะนำให้จับคู่การเข้าถึงกลุ่มที่เขียนได้กับ setgid ในขณะที่ 2775 มีป้ายกำกับเป็นไดเร็กทอรี setgid การทำงานร่วมกันที่แท้จริงยังคงขึ้นอยู่กับการเป็นสมาชิกกลุ่มและกฎเพิ่มเติมที่บังคับใช้โดยระบบเป้าหมาย

775 และ 2775 การแชร์กลุ่มแบบจำลองโดยไม่เลือกความเป็นเจ้าของ

ค่าที่ตั้งล่วงหน้า 1777 แสดงถึงไดเร็กทอรีแบบติดหนึบที่ทั่วโลกสามารถเขียนได้ ซึ่งแสดงโดยรูปแบบ /tmp สิทธิ์ทั่วไปของมันคือ rwxrwxrwx ดังนั้นทุกคลาสจึงสามารถแสดงรายการ แก้ไข และป้อนได้ 1 นำหน้าเปิดใช้งาน Sticky โดยแทนที่ x สุดท้ายด้วย t และเพิ่มคำอธิบายการลบแบบจำกัด สิ่งนี้ทำให้ 1777 แตกต่างจาก 777 โดยไม่ต้องเปลี่ยนการให้สิทธิ์ rwx พื้นฐาน

คำอธิบายไดเร็กทอรียังคงแคบลงโดยเจตนา Sticky อนุญาตให้สร้างในขณะที่จำกัดการลบหรือเปลี่ยนชื่อเป็นเจ้าของไฟล์หรือรูท เครื่องคิดเลขไม่ได้ระบุตัวตน ไม่ได้ตรวจสอบไดเร็กทอรี และสังเกตว่าไม่มีการพยายามดำเนินการ ACL หรือนโยบายการจัดเก็บข้อมูล ถือว่า 1777 เป็นรูปแบบที่สามารถจดจำได้ในการถอดรหัส ไม่ใช่การอนุมัติอัตโนมัติสำหรับสถานที่ที่แชร์ทุกแห่ง

1777 ถูกนำเสนอเป็นรูปแบบไดเรกทอรีที่ใช้ร่วมกันแบบเหนียว

โหมด 4755 เป็นค่าที่ตั้งไว้ล่วงหน้าของโปรแกรม setuid ที่จัดส่ง ฐานของมันคือ 755 และการนำหน้า 4 เปิดใช้งาน setuid เนื่องจากมีการดำเนินการของเจ้าของ ผลลัพธ์จึงเป็น rwsr-xr-x โดยมี s ตัวพิมพ์เล็ก คำอธิบายไฟล์ระบุว่าการดำเนินการใช้ข้อมูลประจำตัวของเจ้าของมากกว่าข้อมูลของผู้โทร และทั้งตัวดำเนินการและป้ายกำกับที่กำหนดไว้ล่วงหน้าเตือนว่าการเปลี่ยนแปลงสิทธิ์ที่หายากนี้สมควรได้รับการตรวจสอบ

จอแสดงผลสามารถเปิดเผยการรวมกันที่น่าสงสัยโดยไม่ต้องตัดสินโปรแกรม หาก setuid ยังคงอยู่ในขณะที่ล้างการดำเนินการของเจ้าของแล้ว ตัว S ตัวพิมพ์ใหญ่จะปรากฏขึ้น เช่นเดียวกับใน 4644 และคำอธิบายระบุว่าไม่มีอะไรให้รัน การทดสอบตรวจสอบทั้งแบบฟอร์มและทุกรอบการเดินทาง ไม่มีการตรวจสอบโค้ด การตรวจสอบความเป็นเจ้าของ การวิเคราะห์ความสามารถ หรือการดำเนินการใดๆ เกิดขึ้น

4755 เปิดเผยโปรแกรม setuid และคำเตือนเหตุผลในการตรวจสอบ

โหมด 777 หายไปจากค่าที่ตั้งล่วงหน้าที่จัดส่ง แม้ว่าไลบรารีจะสามารถแยกวิเคราะห์ได้ก็ตาม ไฟล์ 777 ทำให้เกิดคำเตือนเนื่องจากบัญชีใดก็ตามสามารถเปลี่ยนเนื้อหาได้ ไดเร็กทอรี 777 ให้สิทธิ์ทุกคลาส rwx และอนุญาตให้ลบรายการที่ผู้ใช้ไม่ได้เป็นเจ้าของโดยไม่ต้องติดหนึบ ไม่มีสิ่งใดในแหล่งที่มาที่นำเสนอ 777 เป็นการแก้ไขข้อผิดพลาดในการอนุญาตทั่วไป

ACL รูปแบบการแชร์และการอนุญาตอื่นๆ แยกจากกัน ตัวแปลงนี้แสดงถึงเจ้าของหนึ่งราย หนึ่งกลุ่ม คนอื่นๆ และสามบิตพิเศษ ไม่มีรายการ ACL ชื่อ มาสก์ ไวยากรณ์ของ Windows การตรวจจับแพลตฟอร์ม หรือการสืบค้นระบบไฟล์ การแปลง rwx ที่แม่นยำสามารถแจ้งการวินิจฉัยได้ แต่หลักฐานเฉพาะแพลตฟอร์มจะต้องสร้างการเข้าถึงที่ได้รับอนุญาตนอกโหมดดั้งเดิม

777, ACL การแบ่งปันและแพลตฟอร์มอื่นๆ ยังคงเป็นคำถามที่แยกจากกัน

เอกสารสรุปที่มีประโยชน์คือหลักฐานเบื้องหลังตัวเลข ไม่ใช่คุณค่าทางเวทมนตร์ เลือกค่าที่ตั้งล่วงหน้าที่จัดส่งและตรวจสอบเจ้าของ กลุ่ม อื่นๆ และกล่องพิเศษที่เปิดใช้งาน เปรียบเทียบรูปแบบสัญลักษณ์เก้าอักขระกับข้อมูลสรุปสี่หลัก ซึ่งจะแสดง setuid, setgid และ Sticky ในขณะที่การเลือกเป้าหมายทำให้การดำเนินการไฟล์แตกต่างจากการข้ามผ่านไดเรกทอรีในคำอธิบาย

ใช้เฉพาะข้อสรุปที่เพจรองรับเท่านั้น ค่าที่ตั้งล่วงหน้าจะให้รูปแบบบิตที่แน่นอนและป้ายกำกับวัตถุประสงค์แบบสั้น ไม่ใช่ความรู้เกี่ยวกับความเป็นเจ้าของ ปริมาณงาน ACL ไดเร็กทอรีพาเรนต์ การเมาท์ หรือภัยคุกคาม การแสดงตัวอย่างคำสั่งไม่เคยทำงาน ติดตามบทความ 501 เริ่มต้นด้วยข้อมูลประจำตัวและการดำเนินการ ตรวจสอบการเป็นตัวแทนที่นี่ จากนั้นตรวจสอบระบบจริงก่อนที่จะเปลี่ยนแปลงสิ่งใด