การอนุญาตของไฟล์ 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" ซึ่งทำสิ่งเดียวกันได้อย่างมีประสิทธิภาพจนกว่าคุณจะออกจากระบบ.
โปรดทราบว่าในทั้งสองกรณีนี้การเปลี่ยนแปลงการอนุญาตไฟล์อาจทำให้โปรแกรมไม่ทำงานเปลี่ยนความเป็นเจ้าของไฟล์โดยไม่ตั้งใจให้กับผู้ใช้รูท (แทนที่จะเป็นเจ้าของ) และทำให้ระบบมีความปลอดภัยน้อยลง (โดยให้สิทธิ์เพิ่มเติม) ดังนั้นขอแนะนำให้คุณอย่าเปลี่ยนการอนุญาตสำหรับไฟล์โดยเฉพาะไฟล์ระบบยกเว้นว่าจำเป็นหรือคุณรู้ว่ากำลังทำอะไรอยู่.
มีการอนุญาตไฟล์เพื่อให้ระบบความปลอดภัยขั้นพื้นฐานระหว่างผู้ใช้ การเรียนรู้วิธีการทำงานของมันสามารถช่วยคุณตั้งค่าการแชร์ขั้นพื้นฐานในสภาพแวดล้อมที่มีผู้ใช้หลายคนปกป้องไฟล์ "สาธารณะ" และให้คำใบ้ว่าบางสิ่งผิดปกติกับความเป็นเจ้าของไฟล์ระบบ.
คิดว่าคุณสามารถอธิบายสิ่งต่าง ๆ ได้ง่ายขึ้น? มีการแก้ไขหรือไม่? ต้องการระลึกถึงอดีตหรือไม่ พักสมองและใส่ความคิดของคุณลงในความคิดเห็น.