หากคุณเคยใช้ Linux มาระยะหนึ่ง (และแม้แต่ OS X) คุณอาจพบข้อผิดพลาด "สิทธิ์" แต่มันคืออะไรกันแน่และเหตุใดจึงจำเป็นหรือมีประโยชน์? มาดูภายในกัน
สิทธิ์ของผู้ใช้
ย้อนกลับไปในวันนั้นคอมพิวเตอร์เป็นเครื่องจักรขนาดใหญ่ที่มีราคาแพงมาก เพื่อให้เกิดประโยชน์สูงสุดมีการเชื่อมต่อเครื่องคอมพิวเตอร์หลายเครื่องซึ่งทำให้ผู้ใช้จำนวนมากสามารถทำธุรกิจได้พร้อมกัน การประมวลผลและการจัดเก็บข้อมูลถูกดำเนินการในเครื่องในขณะที่เครื่องเทอร์มินัลนั้นมีมากกว่าวิธีการดูและป้อนข้อมูลเพียงเล็กน้อย หากลองคิดดูก็เป็นวิธีที่เราเข้าถึงข้อมูลบน“ คลาวด์” ได้มากทีเดียว ดูที่ระบบ Cloud MP3, Gmail และ Dropbox ของ Amazon และคุณจะสังเกตเห็นว่าแม้ว่าการเปลี่ยนแปลงสามารถทำได้ในเครื่อง แต่ทุกอย่างจะถูกจัดเก็บจากระยะไกล
(ภาพ: ขั้ว Zenith Z-19“ โง่” เครดิต: Ajmexico )
เพื่อให้สามารถใช้งานได้ผู้ใช้แต่ละรายต้องมีบัญชี พวกเขาจำเป็นต้องมีส่วนของพื้นที่จัดเก็บที่จัดสรรให้และต้องได้รับอนุญาตให้รันคำสั่งและโปรแกรม ทุกคนจะได้รับ "สิทธิ์ของผู้ใช้" เฉพาะซึ่งกำหนดสิ่งที่พวกเขาทำได้และทำไม่ได้พวกเขาทำและไม่มีสิทธิ์เข้าถึงที่ไหนในระบบและไฟล์ใดที่พวกเขาสามารถและแก้ไขไม่ได้ ผู้ใช้แต่ละคนยังถูกจัดให้อยู่ในกลุ่มต่างๆซึ่งให้สิทธิ์หรือ จำกัด การเข้าถึงเพิ่มเติม
การเข้าถึงไฟล์
ในโลกของผู้ใช้หลายคนที่แปลกประหลาดนี้เราได้กำหนดขอบเขตไว้แล้วว่าผู้ใช้สามารถทำอะไรได้บ้าง แต่สิ่งที่พวกเขาเข้าถึง? ทุกไฟล์มีชุดสิทธิ์และเจ้าของ การกำหนดเจ้าของซึ่งโดยทั่วไปจะถูกผูกไว้เมื่อสร้างไฟล์ประกาศว่าเป็นของผู้ใช้รายใดและมีเพียงผู้ใช้รายนั้นเท่านั้นที่สามารถแก้ไขสิทธิ์การเข้าถึงได้
ในโลกของ Linux การอนุญาตแบ่งออกเป็นสามประเภท ได้แก่ อ่านเขียนและดำเนินการ การเข้าถึงแบบ“ อ่าน” ช่วยให้สามารถดูเนื้อหาของไฟล์ได้การเข้าถึงแบบ“ เขียน” อนุญาตให้บุคคลหนึ่งแก้ไขเนื้อหาของไฟล์และ“ ดำเนินการ” อนุญาตให้เรียกใช้ชุดคำสั่งเช่นสคริปต์หรือโปรแกรม แต่ละหมวดหมู่เหล่านี้ใช้กับคลาสต่างๆ ได้แก่ ผู้ใช้กลุ่มและโลก “ ผู้ใช้” หมายถึงเจ้าของ“ กลุ่ม” หมายถึงผู้ใช้ที่อยู่ในกลุ่มเดียวกับเจ้าของและ“ โลก” หมายถึงใครก็ได้และทุกคน
นอกจากนี้ยังสามารถ จำกัด โฟลเดอร์ได้ด้วยสิทธิ์เหล่านี้ ตัวอย่างเช่นคุณสามารถอนุญาตให้คนอื่นในกลุ่มของคุณดูไดเร็กทอรีและไฟล์ในโฟลเดอร์บ้านของคุณได้ แต่ไม่อนุญาตให้ใครก็ตามที่อยู่นอกกลุ่มของคุณ คุณอาจต้องการ จำกัด การเข้าถึง "เขียน" ไว้เฉพาะตัวคุณเองเว้นแต่คุณกำลังทำงานในโครงการที่แชร์บางประเภท คุณยังสามารถสร้างไดเร็กทอรีที่ใช้ร่วมกันเพื่อให้ทุกคนสามารถดูและแก้ไขไฟล์ในโฟลเดอร์นั้นได้
การเปลี่ยนสิทธิ์ใน Ubuntu
GUI
หากต้องการเปลี่ยนสิทธิ์ของไฟล์ที่คุณเป็นเจ้าของใน Ubuntu เพียงคลิกขวาที่ไฟล์แล้วไปที่“ Properties”
คุณสามารถเปลี่ยนได้ว่าจะให้เจ้าของกลุ่มหรือคนอื่นอ่านและเขียนอ่านอย่างเดียวหรือไม่ทำอะไรเลย นอกจากนี้คุณยังสามารถทำเครื่องหมายในช่องเพื่ออนุญาตให้เรียกใช้ไฟล์ได้ซึ่งจะเป็นการเปิดใช้งานสำหรับเจ้าของกลุ่มและอื่น ๆ พร้อมกัน
บรรทัดคำสั่ง
คุณสามารถทำได้ผ่านทางบรรทัดคำสั่ง ไปที่ไดเร็กทอรีที่มีไฟล์อยู่และพิมพ์คำสั่งต่อไปนี้เพื่อดูไฟล์ทั้งหมดในรายการ:
ls -al
ข้างไฟล์และไดเรกทอรีแต่ละรายการคุณจะเห็นส่วนพิเศษที่ระบุถึงสิทธิ์ที่มี ดูเหมือนว่า:
-rwxrw-r–
ร ย่อมาจาก "อ่าน" ใน ย่อมาจาก "write" และ x ย่อมาจาก“ execute” ไดเรกทอรีจะขึ้นต้นด้วย“ d” แทนที่จะเป็น“ -“ คุณจะสังเกตเห็นว่ามีช่องว่าง 10 ช่องซึ่งเก็บค่าไว้ คุณสามารถเพิกเฉยต่อชุดแรกจากนั้นมี 3 ชุด 3 ชุดชุดแรกสำหรับเจ้าของชุดที่ 2 สำหรับกลุ่มและชุดสุดท้ายสำหรับโลก
ในการเปลี่ยนสิทธิ์ของไฟล์หรือไดเรกทอรีให้ดูที่รูปแบบพื้นฐานของคำสั่ง chmod
chmod [class][operator][permission] ไฟล์
chmod [ugoa][+ or –] [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 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" ซึ่งจะทำสิ่งเดียวกันได้อย่างมีประสิทธิภาพจนกว่าคุณจะออกจากระบบ
โปรดทราบว่าในทั้งสองกรณีนี้การเปลี่ยนสิทธิ์ของไฟล์อาจทำให้โปรแกรมไม่ทำงานเปลี่ยนการเป็นเจ้าของไฟล์โดยไม่ได้ตั้งใจให้กับผู้ใช้รูท (แทนที่จะเป็นเจ้าของ) และทำให้ระบบมีความปลอดภัยน้อยลง (โดยให้สิทธิ์มากขึ้น) ดังนั้นจึงขอแนะนำให้คุณอย่าเปลี่ยนสิทธิ์สำหรับไฟล์โดยเฉพาะไฟล์ระบบเว้นแต่ว่าจำเป็นหรือคุณรู้ว่าคุณกำลังทำอะไรอยู่
สิทธิ์ของไฟล์มีไว้เพื่อจัดเตรียมระบบความปลอดภัยขั้นพื้นฐานสำหรับผู้ใช้ การเรียนรู้วิธีการทำงานจะช่วยให้คุณตั้งค่าการแชร์ขั้นพื้นฐานในสภาพแวดล้อมที่มีผู้ใช้หลายคนปกป้องไฟล์ "สาธารณะ" และให้เบาะแสเกี่ยวกับเมื่อเกิดข้อผิดพลาดกับการเป็นเจ้าของไฟล์ระบบ
คิดว่าคุณสามารถอธิบายสิ่งต่างๆได้ง่ายขึ้นหรือไม่? มีการแก้ไข? ต้องการระลึกถึงวันเก่า ๆ หรือไม่? หยุดพักและใส่ความคิดของคุณลงในความคิดเห็น