แนะนำ, 2019

ตัวเลือกของบรรณาธิการ

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

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

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

สิทธิ์ Linux & ระดับ

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

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

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

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

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

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

 -rw-RW-rw- 

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

 drwxr - r-- 

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

การแทนเลขฐานแปด

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

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

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

 -rwxrwxrwx 

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

 -rw-RW-rw- 

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

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

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

ใช้ chmod เพื่อปรับเปลี่ยนการอนุญาต

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

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

 -rw-RW-rw- 

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

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

 chmod a + x ชื่อไฟล์ 

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

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

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

 ชื่อไฟล์ chmod go-wx 

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

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

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

 -rw-RW-rw- 

ด้านบนคุณสามารถเห็นฉันใช้คำสั่งต่อไปนี้:

 ชื่อไฟล์ chmod 744 

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

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

 ชื่อไฟล์ chmod 640 

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

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

Top