ทำความเข้าใจสิทธิ์ Linux และการใช้ chmod


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

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

สิทธิ์ Linux & amp; ระดับใน

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

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

อ่านเขียนและดำเนินการ จะแสดงเป็นตัวอักษรสัญลักษณ์หรือเป็นตัวเลขฐานแปด ตัวอย่างเช่นถ้าคุณทำ 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 เนื่องจากเราเป็น เพิ่มการอ่านและเขียน หมายเลขที่สองจะเหมือนกับหมายเลขฐานแปดที่สาม ที่นี่เรามีค่า octal สุดท้ายของ 666

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

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

การใช้ chmod เพื่อแก้ไขสิทธิ์

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

-rw-rw-rw-

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

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

chmod a+x filename

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

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

ตามที่คุณเห็นในที่นี้ ให้ทำตามคำสั่งต่อไปนี้:

chmod go-wx filename

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

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

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

-rw-rw-rw-

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

chmod 744 filename

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

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

chmod 640 filename

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

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

พื้นฐาน Linux #2 - การอ่านและแก้ไข Permissions

กระทู้ที่เกี่ยวข้อง:


16.02.2017