ทำความเข้าใจเกี่ยวกับสิทธิ์ของ Linux และการใช้งาน chmod

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

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

สิทธิ์และระดับของ Linux

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

การอนุญาตมีสามระดับในLinux : เจ้าของ กลุ่ม และอื่นๆ เจ้าของคือผู้ใช้ที่เป็นเจ้าของไฟล์/โฟลเดอร์ กลุ่มประกอบด้วยผู้ใช้รายอื่นในกลุ่มของไฟล์ และอีกกลุ่มคือตัวแทนผู้ใช้อื่นๆ ทั้งหมดที่ไม่ใช่เจ้าของหรือในกลุ่ม

อ่าน(Read)เขียน และดำเนินการจะแสดงเป็นอักขระสัญลักษณ์หรือเป็นเลขฐานแปด ตัวอย่างเช่น หากคุณทำ ls -l ในไดเร็กทอรีที่มีไฟล์บางไฟล์ คุณจะเห็นการแสดงสัญลักษณ์แทนการอนุญาต

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

หากคุณเห็นขีดกลางแทนตัวอักษร แสดงว่าเจ้าของ กลุ่ม หรือผู้ใช้รายอื่นทั้งหมดไม่ได้รับอนุญาต ในตัวอย่างข้างต้น เจ้าของ กลุ่ม และทุกคนมีสิทธิ์อ่านเขียนและดำเนินการ

หากคุณดูผลลัพธ์จากคำสั่ง ls -l คุณจะสังเกตเห็นว่าไฟล์ข้อความฝึกหัดของฉันมีสิทธิ์ดังต่อไปนี้:

-rw-rw-rw-

ซึ่งหมายความว่าทุกคนมีสิทธิ์อ่าน/เขียนสำหรับไฟล์เท่านั้น นี่เป็นอีกตัวอย่างหนึ่ง:

drwxr--r--

เมื่อดูที่บิตแรก เราจะเห็นว่าการอนุญาตนั้นมีไว้สำหรับไดเร็กทอรี เจ้าของมีสิทธิ์ในการอ่าน/เขียน/ดำเนินการ แต่กลุ่มและผู้ใช้รายอื่นมีสิทธิ์ในการอ่านเท่านั้น

การแสดงเลขฐานแปด

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

ลินุกซ์(Linux)เป็นตัวแทนของการอ่าน เขียน และดำเนินการโดยใช้เลขฐานแปดอย่างไร? โดยพื้นฐานแล้วมันก็แค่กำหนดหมายเลขให้กับแต่ละการอนุญาตดังที่แสดงด้านล่าง

สิทธิ์ในการอ่านจะแสดงด้วย 4 เขียนด้วย 2 และดำเนินการด้วย 1 สิ่งที่คุณต้องทำคือเพิ่มค่าเหล่านี้เพื่อรับสิทธิ์เลขฐานแปด ตัวอย่างเช่น มาดูตัวอย่างด้านบนซึ่งทุกคนมีสิทธิ์ทั้งหมด:

-rwxrwxrwx

เจ้าของมี rwx ดังนั้นเราจะบวก 4 + 2 + 1 เพื่อให้ได้ค่า 7 เราทำสิ่งเดียวกันสำหรับกลุ่มและสิ่งเดียวกันสำหรับผู้อื่น ค่าฐานแปดสุดท้ายคือ 777 ลองดูตัวอย่างที่เราให้สิทธิ์ในการอ่าน/เขียนเท่านั้น:

-rw-rw-rw-

เลขฐานแปดแรกจะเป็น 4 + 2 เนื่องจากเรากำลังเพิ่มการอ่านและเขียน ตัวที่สองจะเหมือนกับเลขฐานแปดที่สาม ในที่นี้เรามีค่าฐานแปดสุดท้ายเป็น 666

ทีนี้มาลองใช้วิธีอื่นกัน สมมติว่าเราต้องการทราบว่าการอนุญาต755หมายถึงอะไร? มันค่อนข้างง่ายที่จะคิดออกว่าคุณแยกมันออกเป็นตัวเลขหรือไม่ ตัวเลขแรกคือ 7 ซึ่งเราได้โดยการเพิ่ม 4 + 2 + 1 เท่านั้น หมายความว่าเจ้าของได้อ่าน/เขียน/ดำเนินการอนุญาตแล้ว สามารถรับได้ห้าครั้งโดยการเพิ่ม 4 + 1 ซึ่งหมายความว่ากลุ่มและผู้ใช้รายอื่นได้อ่านและดำเนินการสิทธิ์

หวัง(Hopefully)ว่าจะเป็นคำอธิบายที่ดีเกี่ยวกับวิธีการแสดงสิทธิ์ในLinuxโดยใช้เลขฐานแปด โดยรวมค่อนข้างตรงไปตรงมา

การใช้ chmod เพื่อแก้ไขการอนุญาต

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

เริ่มต้นด้วยการอนุญาตที่เราพูดถึงข้างต้น กล่าวคือ:

-rw-rw-rw-

หากเราต้องการเพิ่มสิทธิ์ดำเนินการสำหรับเจ้าของ กลุ่ม และอื่นๆ เราสามารถดำเนินการได้สองวิธี เราอาจใช้วิธีสัญลักษณ์หรือวิธีฐานแปดก็ได้ สำหรับวิธีสัญลักษณ์ เราจะทำดังต่อไปนี้

คำสั่งที่แน่นอนคือ

chmod a+x filename

ไวยากรณ์มีดังนี้: ตัวอักษรหรือตัวอักษรแทนเจ้าของ ( u ), กลุ่ม ( g ), อื่น ๆ ( o ) หรือทั้งหมด ( a ) ตามด้วย a +สำหรับการเพิ่มการอนุญาต หรือ-สำหรับ การออกไป การอนุญาต และตัวอักษรสำหรับ การอนุญาต ( rสำหรับการอ่านwสำหรับการเขียนและxสำหรับการดำเนินการ)

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

ดังที่คุณเห็นที่นี่ ฉันเคยใช้คำสั่งต่อไปนี้เพื่อทำสิ่งนี้ให้สำเร็จ:

chmod go-wx filename

เนื่องจากฉันต้องการเปลี่ยนการอนุญาตสำหรับกลุ่มและอื่น ๆ ฉันจึงใช้ตัวอักษรg และ ตัวอักษรo ฉันต้องการลบการอนุญาต ดังนั้นฉันจึงใช้เครื่องหมายสุดท้ายนี้ ฉันต้องการลบสิทธิ์การเขียนและดำเนินการ ดังนั้นฉันจึงใช้wและx นี่คือตารางเล็กๆ ที่มีประโยชน์สำหรับการใช้สัญลักษณ์:

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

หากเราเริ่มต้นด้วยการอนุญาตต่อไปนี้ในไฟล์ มาดูกันว่าเราจะเปลี่ยนได้อย่างไรโดยใช้วิธีฐานแปด:

-rw-rw-rw-

ด้านบน(Above)คุณจะเห็นว่าฉันใช้คำสั่งต่อไปนี้:

chmod 744 filename

โดยพื้นฐานแล้วจะบอกว่าเจ้าของได้รับการอนุญาตในการอ่าน/เขียน/ดำเนินการ และกลุ่มและคนอื่นๆ จะได้รับสิทธิ์ในการอ่านเท่านั้น อย่างที่คุณเห็น การเพิ่มหรือลบการอนุญาตทำได้ง่ายด้วยคำสั่งง่ายๆ คำสั่งเดียว ต่อไปและบอกว่าฉันต้องการเปลี่ยนการอนุญาตอีกครั้ง

ตอนนี้ฉันใช้คำสั่งต่อไปนี้ อีกครั้งหนึ่งที่ง่ายมาก:

chmod 640 filename

ที่นี่เราได้ให้สิทธิ์ในการอ่าน/เขียนแก่เจ้าของ กลุ่มสิทธิ์ในการอ่านเท่านั้น และกลุ่มอื่นๆ ไม่มีสิทธิ์ คุณใช้ศูนย์เพื่อแสดงว่าไม่มีสิทธิ์ ค่อนข้างง่ายใช่มั้ย

โดยสรุป นี่เป็นภาพรวมง่ายๆ ของการ อนุญาต Linuxและอาจซับซ้อนกว่านี้มาก แต่สำหรับผู้เริ่มต้น จะเป็นจุดเริ่มต้นที่ดี ฉันจะโพสต์บทความเพิ่มเติมเกี่ยวกับการอนุญาตขั้นสูงเพิ่มเติมในอนาคต หากคุณมีคำถามใด ๆ โปรดแสดงความคิดเห็น สนุก!



About the author

ฉันเป็นมืออาชีพด้านคอมพิวเตอร์ที่มีประสบการณ์การทำงานกับซอฟต์แวร์ Microsoft Office รวมถึง Excel และ PowerPoint ฉันยังมีประสบการณ์กับ Chrome ซึ่งเป็นเบราว์เซอร์ของ Google ทักษะของฉันรวมถึงการสื่อสารที่เป็นลายลักษณ์อักษรและด้วยวาจา การแก้ปัญหา และการคิดอย่างมีวิจารณญาณ



Related posts