บทความนี้สำรวจ chmod 777 คำสั่ง Linux ที่ใช้ให้สิทธิ์ ทั้งหมด แก่ผู้ใช้ กลุ่ม และผู้อื่น
ในฐานะผู้ใช้ Linux ใหม่ นักพัฒนาเว็บ หรือผู้ดูแลระบบ คุณอาจเคยได้รับคำสั่งให้พิมพ์:
chmod 777 /path/to/file/or/folder
…ลงใน Linux shell ของคุณในบางจุด
เมื่อใดก็ตามที่คุณรันคำสั่งบนระบบของคุณ (โดยเฉพาะในฐานะ root!) คุณควรรู้เสมอว่าพวกมันทำอะไรอยู่ ดังนั้น chmod 777 จริงๆ แล้วคืออะไร?
สิทธิ์ใน Linux

ls – l command
ข้างต้นเป็นตัวอย่างการรัน:
ls -l
คำสั่ง ซึ่งจะแสดงรายการเนื้อหาไดเรกทอรีปัจจุบันใน รูปแบบรายการยาว, ซึ่งแสดงสิทธิ์และวันที่แก้ไขสำหรับไฟล์ที่แสดงรายการ
- คอลัมน์แรกที่แสดงคือสิทธิ์ที่มอบหมายให้ไฟล์หรือไดเรกทอรี
- คอลัมน์ที่สองคือจำนวนไฟล์หรือโฟลเดอร์ที่มีอยู่
- คอลัมน์ที่สามและสี่แสดง ผู้ใช้ และ กลุ่ม ที่มีสิทธิ์สำหรับไฟล์เหล่านั้นตามลำดับ
- คอลัมน์ที่ห้าและหกแสดงขนาดและวันที่แก้ไข
- คอลัมน์สุดท้ายแสดงชื่อไฟล์
คอลัมน์ที่หนึ่ง สาม และสี่ มีข้อมูลที่เกี่ยวข้องกับสิทธิ์ ซึ่งจะถูกอ้างอิงในบทความนี้
โฟลเดอร์ที่แสดงในภาพหน้าจออยู่ในไดเรกทอรีโฮมของผู้ใช้ linuxscrew และทั้งหมดมีสิทธิ์
drwxr-xr-x
พร้อมทั้ง owner และ group ของผู้ใช้ linuxscrew ที่เป็นเจ้าของ
drwxr-xr-x มีข้อมูล 4 ส่วน 3 ส่วนเกี่ยวกับสิทธิ์:
| d | rwx | r-x | r-x |
|---|---|---|---|
| เป็นไดเรกทอรี | Owner สามารถ Read, Write, eXecute | Group สามารถ Read, eXecute | Others สามารถ Read, eXecute |
- ตัวอักษรแรกแสดง ประเภทไฟล์ – หากเป็น d เป็นไดเรกทอรี หากเป็น – เป็นไฟล์ทั่วไป
- ตัวอักษรที่ 2-4 มีสิทธิ์สำหรับ ผู้ใช้
- ตัวอักษรที่ 5-7 มีสิทธิ์สำหรับ กลุ่ม
- ตัวอักษรที่ 8-10 มีสิทธิ์สำหรับ ผู้อื่น
ตัวอักษรในแต่ละบล็อกมีความหมายดังนี้:
- '-' ปฏิเสธสิทธิ์
- 'r' สิทธิ์อ่าน
- 'w' สิทธิ์เขียน
- 'x' สิทธิ์รัน
มีค่าพิเศษบางอย่างที่ตัวอักษร eXecute สามารถรับได้:
- 's' setuid bit อยู่ในสิทธิ์ ผู้ใช้ หรือ กลุ่ม ผู้ใช้ที่สามารถรันไฟล์ได้จะรันด้วยสิทธิ์ของเจ้าของไฟล์ และ/หรือกลุ่มของไฟล์ มันหมายถึง x ถูกตั้งค่า ทำให้ไฟล์รันได้
- 'S' เหมือน 's' แต่ไฟล์ไม่ได้รันได้
- 't' Sticky bit อยู่ในสิทธิ์ ผู้อื่น ทำให้ไฟล์ sticky – เฉพาะเจ้าของเท่านั้นที่สามารถเปลี่ยนชื่อหรือลบไฟล์หรือไฟล์ภายในได้ กลุ่มและผู้อื่นไม่สามารถ! มันยังหมายถึง x ถูกตั้งค่า ทำให้ไฟล์รันได้
- 'T' เหมือน 't' แต่ไฟล์ไม่ได้รันได้
เพื่อความสมบูรณ์ ประเภทไฟล์ที่แตกต่างกันสามารถครอบครองพื้นที่ตัวอักษรแรกได้:
- '-' ไฟล์ทั่วไป
- 'b' ไฟล์พิเศษบล็อก
- 'c' ไฟล์พิเศษตัวอักษร
- 'C' ไฟล์ประสิทธิภาพสูง ("contiguous data")
- 'd' ไดเรกทอรี
- 'D' door (Solaris 2.5 ขึ้นไป)
- 'l' symbolic link
- 'M' ไฟล์ออฟไลน์ ("migrated") (Cray DMF)
- 'n' ไฟล์พิเศษเครือข่าย (HP-UX)
- 'p' FIFO (named pipe)
- 'P' port (Solaris 10 ขึ้นไป)
- 's' socket
- '?' ประเภทไฟล์อื่นๆ
ความหมายของ 777
เพื่อให้การพิมพ์เร็วขึ้นเมื่อกำหนดสิทธิ์ ตัวเลขสามารถใช้แทนการผสมผสานของตัวอักษรที่แสดงข้างต้น:
- 7 สิทธิ์ทั้งหมด
- 6 อ่านและเขียน
- 5 อ่านและรัน
- 4 อ่านอย่างเดียว
- 3 รันและเขียน
- 2 เขียนอย่างเดียว
- 1 รันอย่างเดียว
- 0 ไม่มีสิทธิ์
ดังนั้น เพื่อให้ สิทธิ์ทั้งหมด แก่ ผู้ใช้, กลุ่ม, และ ผู้อื่น, เราจะต้องกำหนดสิทธิ์ 777
คำสั่ง chmod
คำสั่ง chmod (Change Mode) ให้คุณนำสิทธิ์ไปใช้กับไฟล์
chmod 777
ดังนั้น การรัน:
chmod 777 /path/to/file/or/folder
…จะให้เจ้าของไฟล์หรือโฟลเดอร์ (ผู้ใช้), กลุ่ม (ผู้ใช้ในกลุ่ม), และผู้อื่น (ทุกคนในระบบ) สิทธิ์อ่าน เขียน และรันเต็มที่
chmod -R 777 /path/to/file/or/folder
นี่จะทำสิ่งเดียวกัน แบบ recursive และให้ทุกคนสิทธิ์เต็มที่บนไฟล์ภายในไดเรกทอรี
ตอนนี้คุณรู้แล้ว!