โฮมเพจ » ทำอย่างไร » การอนุญาตของไฟล์ Linux ทำงานอย่างไร

    การอนุญาตของไฟล์ Linux ทำงานอย่างไร

    หากคุณใช้ Linux มาระยะหนึ่ง (และแม้กระทั่ง OS X) คุณอาจพบข้อผิดพลาด“ การอนุญาต” แต่มันคืออะไรกันแน่และทำไมพวกมันถึงจำเป็นหรือมีประโยชน์? ลองดูข้างใน.

    สิทธิ์ของผู้ใช้

    ย้อนกลับไปในวันนั้นคอมพิวเตอร์เป็นเครื่องจักรขนาดใหญ่ที่มีราคาแพงอย่างไม่น่าเชื่อ เพื่อประโยชน์สูงสุดของพวกเขาคอมพิวเตอร์หลายเครื่องถูกติดตั้งซึ่งอนุญาตให้ผู้ใช้หลายคนไปทำธุรกิจของพวกเขาพร้อมกัน การประมวลผลข้อมูลและการจัดเก็บข้อมูลได้ทำบนเครื่องในขณะที่เทอร์มินัลเองนั้นมีอะไรมากกว่าวิธีการดูและป้อนข้อมูล ถ้าคุณคิดเกี่ยวกับมันมันเป็นวิธีที่เราเข้าถึงข้อมูลบน "คลาวด์"; ดูระบบคลาวด์ MP3, Gmail และ Dropbox ของ Amazon แล้วคุณจะสังเกตเห็นว่าในขณะที่การเปลี่ยนแปลงสามารถทำได้ภายในเครื่องทุกอย่างจะถูกจัดเก็บจากระยะไกล.

    (ภาพ: เทอร์มินัลสุดยอด Z-19“ ใบ้” เครดิต: ajmexico)

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

    การเข้าถึงไฟล์

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

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

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

    การเปลี่ยนการอนุญาตใน Ubuntu

    GUI

    หากต้องการเปลี่ยนการอนุญาตของไฟล์ที่คุณเป็นเจ้าของใน Ubuntu เพียงคลิกขวาที่ไฟล์และไปที่“ คุณสมบัติ”

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

    บรรทัดคำสั่ง

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

    ls -al

    ถัดจากแต่ละไฟล์และไดเรกทอรีคุณจะเห็นส่วนพิเศษที่แสดงสิทธิ์ที่มี ดูเหมือนว่านี้:

    -rwxrw-R-

    R ย่อมาจาก "อ่าน" W หมายถึง "เขียน" และ x ย่อมาจาก "execute" ไดเรกทอรีจะเริ่มต้นด้วย "d" แทนที่จะเป็น "-" คุณจะสังเกตเห็นว่ามีช่องว่าง 10 ช่องที่เก็บค่าไว้ คุณสามารถละเว้นชุดแรกและจากนั้นมี 3 ชุด 3 ชุดชุดแรกสำหรับเจ้าของชุดที่สองสำหรับกลุ่มและชุดสุดท้ายสำหรับโลก.

    หากต้องการเปลี่ยนไฟล์หรือการอนุญาตของไดเรกทอรีลองดูที่รูปแบบพื้นฐานของคำสั่ง chmod.

    chmod [class] [โอเปอเรเตอร์] [ไฟล์อนุญาต]

    chmod [ugoa] ไฟล์ [+ หรือ -] [rwx]

    นี่อาจดูซับซ้อนในตอนแรก แต่เชื่อใจฉันมันง่ายมาก อันดับแรกให้ดูที่คลาส:

    • u: นี่สำหรับเจ้าของ.
    • g: สำหรับกลุ่มนี้.
    • o: นี่สำหรับคนอื่น ๆ ทั้งหมด.
    • a: สิ่งนี้จะเปลี่ยนการอนุญาตสำหรับทั้งหมดข้างต้น.

    ถัดไปผู้ประกอบการ:

    • +: เครื่องหมายบวกจะเพิ่มสิทธิ์ที่ตามมา.
    • -: เครื่องหมายลบจะลบการอนุญาตที่ติดตาม.

    ยังอยู่กับฉัน และส่วนสุดท้ายเหมือนกันเมื่อเราตรวจสอบการอนุญาตของไฟล์:

    • r: อนุญาตการเข้าถึงเพื่ออ่าน.
    • w: อนุญาตการเข้าถึงเพื่อเขียน.
    • x: อนุญาตการดำเนินการ.

    ทีนี้มารวมกัน สมมติว่าเรามีไฟล์ชื่อ“ todo.txt” ที่มีการอนุญาตดังต่อไปนี้:

    -RW-RW-R-

    นั่นคือเจ้าของและกลุ่มสามารถอ่านและเขียนและโลกสามารถอ่านได้เท่านั้น เราต้องการเปลี่ยนการอนุญาตเป็น:

    -rwxr-

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

    chmod u + x todo.txt

    จากนั้นเราจะลบสิทธิ์การเขียนสำหรับกลุ่ม.

    chmod g-w todo.txt

    สุดท้ายเราจะลบสิทธิ์การอ่านสำหรับผู้ใช้รายอื่นทั้งหมด.

    chmod o-r todo.txt

    เราสามารถรวมสิ่งเหล่านี้เป็นคำสั่งเดียวเช่น:

    chmod u + x, g-w, o-r todo.txt

    คุณจะเห็นว่าแต่ละส่วนคั่นด้วยเครื่องหมายจุลภาคและไม่มีช่องว่าง.

    นี่คือสิทธิ์ที่เป็นประโยชน์บางส่วน:

    • -rwxr-xr-x: เจ้าของมีสิทธิ์แบบเต็มกลุ่มและผู้ใช้อื่นสามารถอ่านเนื้อหาไฟล์และดำเนินการได้.
    • -rwxr-r-: เจ้าของมีสิทธิ์แบบเต็มกลุ่มและผู้ใช้อื่นสามารถอ่านไฟล์ได้เท่านั้น (มีประโยชน์ถ้าคุณไม่รังเกียจที่คนอื่นจะดูไฟล์ของคุณ.
    • -rwx-: เจ้าของมีสิทธิ์อย่างเต็มที่คนอื่น ๆ ไม่มี (มีประโยชน์สำหรับสคริปต์ส่วนตัว).
    • -rw-rw--: เจ้าของและกลุ่มสามารถอ่านและเขียน (มีประโยชน์สำหรับการทำงานร่วมกับสมาชิกในกลุ่ม).
    • -rw-r-r-: เจ้าของสามารถอ่านและเขียนกลุ่มและผู้ใช้อื่น ๆ สามารถอ่านไฟล์ได้เท่านั้น (มีประโยชน์สำหรับการจัดเก็บไฟล์ส่วนบุคคลในเครือข่ายที่ใช้ร่วมกัน).
    • -rw--: เจ้าของสามารถอ่านและเขียนคนอื่น ๆ ทั้งหมดไม่มี (มีประโยชน์สำหรับการจัดเก็บไฟล์ส่วนบุคคล).

    มีสิ่งอื่น ๆ อีกสองสามอย่างที่คุณสามารถทำได้กับ chmod เช่น setuid และ setgid แต่พวกมันมีความลึกในเชิงลึกและผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องใช้มัน.

    ไฟล์ Root หรือ Super-User และ System

    ทุกวันนี้เราไม่ได้รันระบบที่มีผู้ใช้หลายคน ทำไมเรายังต้องกังวลเกี่ยวกับการอนุญาต?

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

    ใน Ubuntu เพื่อทำการเปลี่ยนแปลงไฟล์ระบบคุณใช้“ sudo” หรือ“ gksudo” เพื่อรับสิทธิ์เทียบเท่าผู้ดูแลระบบ ใน distros อื่นคุณเปลี่ยนเป็น "root" หรือ "super-user" ซึ่งทำสิ่งเดียวกันได้อย่างมีประสิทธิภาพจนกว่าคุณจะออกจากระบบ.

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


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

    คิดว่าคุณสามารถอธิบายสิ่งต่าง ๆ ได้ง่ายขึ้น? มีการแก้ไขหรือไม่? ต้องการระลึกถึงอดีตหรือไม่ พักสมองและใส่ความคิดของคุณลงในความคิดเห็น.