ทำความเข้าใจเกี่ยวกับสิทธิ์ของ 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และอาจซับซ้อนกว่านี้มาก แต่สำหรับผู้เริ่มต้น จะเป็นจุดเริ่มต้นที่ดี ฉันจะโพสต์บทความเพิ่มเติมเกี่ยวกับการอนุญาตขั้นสูงเพิ่มเติมในอนาคต หากคุณมีคำถามใด ๆ โปรดแสดงความคิดเห็น สนุก!
Related posts
สิทธิ์ของไฟล์ Linux – Chmod 777 คืออะไรและใช้งานอย่างไร
คำสั่ง Linux FIND พร้อมตัวอย่าง
5 เหตุผลดีๆ ที่ควรเลิกใช้ Windows สำหรับ Linux
HDG อธิบาย : UNIX คืออะไร?
9 สุดยอด Linux Distros สำหรับการแฮ็ก
วิธีอัปเกรดเป็น Ubuntu ล่าสุด
10 แป้นพิมพ์ลัดของ Ubuntu เพื่อเพิ่มความเร็วเวิร์กโฟลว์ของคุณ
วิธีการติดตั้ง Linux Mint ใหม่โดยไม่สูญเสียข้อมูลและการตั้งค่าของคุณ
ทำไมคำสั่ง "น้อย" จึงดีกว่า "มากกว่า" ใน UNIX และ Linux
วิธีที่ง่ายที่สุดในการเชื่อมต่อระยะไกลกับ Linux Mint จาก OS ใด ๆ
วิธีการตั้งค่าและกำหนดค่าไฟล์ TCP/IP บน Linux (การตั้งค่า TCP/IP สำหรับ Linux)
10 อันดับคำสั่ง Raspberry Pi Linux ที่คุณควรรู้
Fedora vs Ubuntu: การกระจาย Linux ใดดีกว่ากัน?
แอพ Linux ที่ดีที่สุด 10 อันดับแรกสำหรับผู้ใช้ Ubuntu
สร้าง Custom Live Linux Distro ด้วย Linux Live Kit
คู่มือ Ubuntu Linux สำหรับผู้เริ่มต้น
5 เกมลินุกซ์ที่ดีที่สุด
20 แอพลินุกซ์ที่ดีที่สุดตลอดกาล
วิธีการคอมไพล์แพ็คเกจซอฟต์แวร์บน Linux
โปรแกรมป้องกันไวรัสฟรี 7 อันดับแรกสำหรับ Linux