ไทย

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

วิธีแมปเลขฐานแปด chmod กับบิตอนุญาต rwx (4, 2, 1)

· มันทำงานอย่างไร

chmod ยูนิกซ์ นักพัฒนาเวิร์กโฟลว์

เลขอนุญาตฐานแปดแบ่งออกเป็นเจ้าของ กลุ่ม และบิต rwx อื่นๆ
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

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

หมายเลขที่คุณวางต่อไป - chmod 755 ใช้งานได้ แต่คุณไม่สามารถพูดได้ว่า 5 ให้อะไรหรือกับใคร

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

สามคลาส สามหลัก — เจ้าของ กลุ่ม และคนอื่นๆ ต่างก็มีเลขฐานแปดหนึ่งหลักในลำดับคงที่

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

อ่าน 4 เขียน 2 ดำเนินการ 1 — เหตุใดน้ำหนักจึงเป็นกำลังของสอง และวิธีเพิ่มค่าใดๆ จาก 0 ถึง 7

แต่ละคลาสมีสามบิตที่มีน้ำหนัก read=4, write=2 และดำเนินการ=1 เพิ่มเฉพาะน้ำหนักที่อนุญาต: 7=4+2+1 (rwx), 6=4+2 (rw-) 5=4+1 (r-x) และ 0=--- พวกมันเป็นกำลังของสอง ดังนั้นการไม่มีธงอิสระสามอันรวมกันจะทำให้เกิดผลรวมเท่ากันกับอีกธงหนึ่ง การดำเนินการไดเร็กทอรีหมายถึงการข้ามผ่าน ไม่ใช่ "เรียกใช้โฟลเดอร์นี้"; ไดเร็กทอรีมักต้องการให้ผู้ใช้เข้าถึงไฟล์ภายในแม้ว่าไฟล์จะมีสิทธิ์ในการอ่านก็ตาม

ตัวอย่างการทำงาน: การถอดรหัส 640 และ 751 ด้วยมือ - เปลี่ยนแต่ละหลักให้เป็นเลขฐานสองสามแล้วให้เป็นตัวอักษร rwx

ถอดรหัส 640 ตามคลาส: 6 -> ไบนารี 110 -> rw-; 4 -> 100 -> r--; 0 -> 000 -> ---. ตัวอักษรอนุญาตเก้าตัวคือ rw-r----- ถอดรหัส 751: 7 -> rwx, 5 -> r-x, 1 -> --x ให้ rwxr-x--x สังเกตว่า “other” ใน 751 สามารถสำรวจหรือดำเนินการโดยไม่ต้องอ่านหรือเขียนได้อย่างไร นั่นอาจเป็นเจตนาสำหรับไดเร็กทอรี แต่สมควรได้รับการตรวจสอบไฟล์ที่ละเอียดอ่อน ใช้เครื่องคิดเลข Chmod เพื่อเปรียบเทียบเอาต์พุตฐานแปดและสัญลักษณ์แทนที่จะจำตัวอย่าง

ไปทางอื่น: จาก ls -l ถึง octal — อ่าน rwxr-x--- และเพิ่มน้ำหนักต่อคลาส

ทำงานย้อนกลับจากโหมดสัญลักษณ์เช่น rwxr-x--- เจ้าของมี 4+2+1=7 กลุ่ม 4+1=5 และอื่นๆ 0; ผลลัพธ์คือ 750 ไม่ใช่ 755 จอแสดงผล ls -l แบบยาวยังมีอักขระประเภทไฟล์นำหน้าด้วย และอาจแสดง + ต่อท้ายสำหรับ ACL ดังนั้นอย่าป้อนสตริงการแสดงผลทั้งหมดเป็นเลขคณิตสามหลัก สำหรับไดเร็กทอรี ให้วางแผน read/write/execute แยกกันสำหรับแต่ละคลาส แทนที่จะคัดลอกโหมดของไฟล์ข้างเคียง

สิ่งนี้ไม่ครอบคลุมถึง - ตัวเลขตัวที่สี่นำหน้าสำหรับ setuid, setgid และ Sticky และ ACL ที่ทำเครื่องหมายด้วยเครื่องหมายบวก

คำแนะนำแบบเจ็ดส่วนนี้ครอบคลุมบิตการอนุญาตเก้าบิตทั่วไป มันไม่ได้อธิบาย 4, 2 หรือ 1 นำหน้าสำหรับ setuid, setgid และ Sticky; บิตเหล่านั้นเปลี่ยนวิธีการทำงานของโปรแกรมหรือไดเร็กทอรีและแสดงด้วย s/S หรือ t/T ในเอาต์พุตสัญลักษณ์ รายการควบคุมการเข้าถึงสามารถให้หรือปฏิเสธการเข้าถึงนอกเหนือจากรูปภาพธรรมดานี้ได้ เครื่องคิดเลข ToolAcre รองรับบิตพิเศษเพิ่มเติม แต่คุณควรอ่านคำอธิบายแยกต่างหากก่อนเปิดใช้งานบนระบบที่ใช้งานจริง

Takeaway: โหมดคือเก้าบิตที่คุณสามารถคำนวณได้ และเครื่องคิดเลข Chmod ให้คุณตรวจสอบการแปลงในทิศทางใดทิศทางหนึ่งในเบราว์เซอร์

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