หากคุณเป็นผู้ใช้ Linux หรือผู้ดูแลระบบที่จัดการเซิร์ฟเวอร์ Linux คุณจะพบข้อผิดพลาด “คุณไม่มีสิทธิ์อัปโหลดไฟล์ไปยังโฟลเดอร์” หลังจาก Googling วิธีแก้ปัญหามักจะง่ายพอๆ กับการตั้งค่าการอนุญาตไฟล์เป็น “775” หรือ “777” ในด้านเทคนิค คุณจะถูกขอให้ "chmod 777 ไฟล์" แต่ “777” หมายถึงอะไร? แล้วทำไมต้องเป็น “7” ไม่ใช่ “8” หรือ “9”?
ในโพสต์นี้ เราจะแสดงให้คุณเห็นถึงวิธีทำความเข้าใจการอนุญาตของไฟล์ให้ดีขึ้นเล็กน้อย รวมถึงความหมายของ chmod 777
ทำความเข้าใจการอนุญาตไฟล์
ระบบ Unix (รวมถึง Linux และ macOS) มีกลไกการควบคุมไฟล์ที่กำหนดว่าใครสามารถเข้าถึงไฟล์หรือโฟลเดอร์ใดไฟล์หนึ่งได้ และพวกเขาสามารถทำอะไรกับมันได้บ้าง
มีสองส่วนที่ต้องพิจารณา:
ชั้นเรียน สิ่งนี้กำหนดว่าใครสามารถเข้าถึงไฟล์ได้ มีสามชื่อ:เจ้าของ กลุ่ม (ซึ่งทุกคนมีสิทธิ์เหมือนกัน) และอื่นๆ
- เจ้าของมักจะเป็นผู้สร้างไฟล์หรือโฟลเดอร์ ใน Linux ไฟล์หรือโฟลเดอร์ใดๆ ที่คุณสร้างในไดเร็กทอรีโฮมมักเป็นของคุณ เว้นแต่คุณจะเปลี่ยนการเป็นเจ้าของโดยเฉพาะ
- กลุ่มประกอบด้วยกลุ่มผู้ใช้ที่มีสิทธิ์และสิทธิ์ของผู้ใช้เหมือนกัน
- อื่นๆ หมายถึง ประชาชนทั่วไป
การอนุญาต สิ่งเหล่านี้กำหนดสิ่งที่ผู้ใช้สามารถทำได้กับไฟล์ คุณสามารถอ่าน เขียน หรือดำเนินการไฟล์ และคุณสามารถตั้งค่าการอนุญาตทั้งสามนี้ร่วมกันได้แทบทุกแบบ
- อ่าน คุณไม่สามารถแก้ไขเนื้อหาของไฟล์ในทางใดทางหนึ่ง เมื่อนำไปใช้กับโฟลเดอร์ คุณสามารถดูไฟล์ภายในโฟลเดอร์นั้นเท่านั้น คุณไม่สามารถลบหรือแก้ไขไฟล์ในทางใดทางหนึ่งหรือเพิ่มไฟล์ลงในโฟลเดอร์ได้
- เขียน คุณสามารถแก้ไขไฟล์. หากคุณมีสิทธิ์ "เขียน" ในโฟลเดอร์ คุณจะลบและเพิ่มไฟล์ลงในโฟลเดอร์นั้นได้
- ดำเนินการ ส่วนใหญ่ใช้ Execute เมื่อคุณต้องการเรียกใช้ไฟล์ และมักใช้เมื่อคุณต้องการเรียกใช้สคริปต์
เมื่อใช้ Classes ร่วมกับ Permissions คุณจะควบคุมได้ว่าใครสามารถเข้าถึงไฟล์และดำเนินการใดได้บ้าง
เจ้าของไฟล์มักจะมีสิทธิ์ทั้งสาม (อ่าน เขียน และดำเนินการ) หากคุณไม่สามารถอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ได้ สาเหตุมักเกิดจากการอนุญาตที่ไม่ตรงกัน
อธิบายการอนุญาตไฟล์ 777
เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับคลาสและการอนุญาตแล้ว คุณจะเริ่มเข้าใจตัวเลข เช่น “777” และ “775” ได้
ทุกไฟล์และโฟลเดอร์มีข้อมูล 8 บิตที่ควบคุมการอนุญาต ในรูปแบบไบนารีพื้นฐาน 000 หมายความว่าไม่มีการอนุญาตรูปแบบใด ๆ
เมื่อคุณตั้งค่าการอนุญาต "อ่าน" ข้อมูลจะเพิ่ม 4 บิตลงในข้อมูล ทำให้เป็น "100" (ในรูปแบบไบนารี) หรือ "4" ในรูปแบบทศนิยมปกติ การตั้งค่าการอนุญาต "เขียน" จะเพิ่ม 2 บิตให้กับข้อมูล ทำให้เป็น "010" และ "2" ในรูปแบบทศนิยม สุดท้าย การตั้งค่าสิทธิ์ "ดำเนินการ" จะเพิ่ม 1 บิตให้กับข้อมูล ซึ่งจะส่งผลให้ "001" หรือ "1" อยู่ในรูปแบบทศนิยม กล่าวโดยย่อ:
- การอ่านเทียบเท่ากับ “4”
- เขียนเทียบเท่ากับ “2.”
- ดำเนินการเทียบเท่ากับ “1”
โดยสรุป การตั้งค่าการอนุญาตเป็นคณิตศาสตร์พื้นฐาน ตัวอย่างเช่น ในการตั้งค่าการอนุญาต "อ่านและเขียน" เรารวม 4 และ 2 เข้าด้วยกันเพื่อให้ได้ 6 แน่นอนว่ามีการเรียงสับเปลี่ยนอื่นๆ:
- 0: ไม่ได้รับอนุญาต
- 1: ดำเนินการ
- 2: เขียน
- 3: เขียนและดำเนินการ
- 4: อ่าน
- 5: อ่านและดำเนินการ
- 6: อ่านเขียน
- 7: อ่าน เขียน และดำเนินการ
ชุดสิทธิ์การใช้ไฟล์ที่สมบูรณ์จะกำหนดหลักแรกให้กับเจ้าของ หลักที่สองให้กับกลุ่ม และหลักที่สามให้กับผู้อื่น นี่คือการอนุญาตที่ใช้กันทั่วไปบางส่วน:
- 755 . เว็บเซิร์ฟเวอร์มักใช้ชุดการอนุญาตนี้ เจ้าของมีสิทธิ์ทั้งหมดในการอ่าน เขียน และดำเนินการ คนอื่นๆ สามารถอ่านและดำเนินการได้ แต่ไม่สามารถเปลี่ยนแปลงไฟล์ได้
- 644 . เจ้าของเท่านั้นที่สามารถอ่านและเขียนได้ ทุกคนสามารถอ่านได้เท่านั้น ไม่มีใครสามารถรันไฟล์นี้ได้
- 655 . มีเพียงเจ้าของเท่านั้นที่สามารถอ่านและเขียนและไม่สามารถเรียกใช้ไฟล์ได้ คนอื่นๆ สามารถอ่านและดำเนินการได้ และไม่สามารถแก้ไขไฟล์ได้
สำหรับ 777 นี่หมายความว่าผู้ใช้ทุกคนสามารถอ่าน เขียน และดำเนินการได้ เนื่องจากให้สิทธิ์แบบเต็มจึงควรใช้ด้วยความระมัดระวัง อย่างไรก็ตาม ในบางกรณี คุณจะต้องตั้งค่าการอนุญาต 777 ก่อนจึงจะสามารถอัปโหลดไฟล์ใดๆ ไปยังเซิร์ฟเวอร์ได้
การตั้งค่าการอนุญาตไฟล์ในบรรทัดคำสั่ง
ใน Linux คุณสามารถเปลี่ยนการอนุญาตไฟล์ได้อย่างง่ายดายโดยคลิกขวาที่ไฟล์หรือโฟลเดอร์แล้วเลือก "คุณสมบัติ" ซึ่งจะเปิดแท็บการอนุญาตซึ่งคุณสามารถเปลี่ยนแปลงได้
ในทางกลับกัน คุณสามารถเปลี่ยนการตั้งค่าการอนุญาตบน macOS ได้ด้วยการคลิกขวาและเลือก “รับข้อมูล” คุณจะขยายส่วน "การแชร์และสิทธิ์" และทำการเปลี่ยนแปลงได้ที่นี่
หากต้องการแก้ไข ให้เลือกการอนุญาตที่เกี่ยวข้องจากส่วนสิทธิ์และเลือกสิ่งที่เหมาะสมกว่า
แม้ว่านี่ไม่ใช่วิธีเดียวที่คุณสามารถเปลี่ยนการอนุญาตไฟล์ได้ มาอธิบายรายละเอียดเพิ่มเติมกันต่อไป
การเปลี่ยนการอนุญาตไฟล์โดยใช้ chmod 777
หากคุณคุ้นเคยกับ Terminal และ Command Line มากขึ้น คุณสามารถเปลี่ยนการอนุญาตได้ที่นี่เช่นกัน
chmod
คำสั่งให้คุณ "เปลี่ยนโหมด" - อีกวิธีหนึ่งในการอธิบายสิทธิ์การเข้าถึง ในการดำเนินการนี้ ให้เปิด Terminal และพิมพ์ดังต่อไปนี้:
chmod 777 /path/to/file
กล่าวโดยย่อ chmod 777
รวมสองแนวคิดที่เรานำเสนอในบทความนี้ หมายถึงการทำให้ไฟล์สามารถอ่าน เขียนได้ และเรียกใช้งานได้โดยทุกคนที่มีสิทธิ์เข้าถึง ด้วยเหตุนี้ จึงเป็นเครื่องที่มีประสิทธิภาพและเป็นตัวทำลายระบบ ดังนั้นควรระมัดระวังเป็นพิเศษ
โดยย่อ
สิทธิ์ของไฟล์สามารถนำเสนอสิ่งกีดขวางบนถนนได้หากไม่ได้ตั้งค่าไว้อย่างถูกต้อง นี่คือการออกแบบ เนื่องจากระบบล็อคไม่สามารถประนีประนอมได้ แม้ว่าหากคุณต้องการเข้าถึงไฟล์บนระบบหรือเซิร์ฟเวอร์ของคุณ การเรียนรู้วิธีเปลี่ยนการอนุญาตบางอย่างถือเป็นทักษะที่ดี
โดยสรุป chmod 777 คือคำสั่งที่คุณจะใช้ภายใน Terminal เพื่อทำให้ทุกคนสามารถเข้าถึงไฟล์หรือโฟลเดอร์ได้ คุณควรใช้ในบางโอกาสและเปลี่ยนกลับไปใช้ชุดสิทธิ์ที่เข้มงวดมากขึ้นเมื่อดำเนินการเสร็จ
หากคุณสงสัยว่า Terminal สามารถทำอะไรได้อีก โปรดดูโพสต์ของเราเกี่ยวกับวิธีคัดลอกและวางจากบรรทัดคำสั่ง คุณต้องจัดการการอนุญาตไฟล์และโพสต์นี้จะช่วยคุณหรือไม่? แจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง!