การอนุญาตไฟล์ใน Linux / Unix: จะอ่านเขียนและเปลี่ยนแปลงได้อย่างไร
Linux เป็นโคลนของ UNIX ซึ่งเป็นระบบปฏิบัติการแบบหลายผู้ใช้ที่ผู้ใช้หลายคนสามารถเข้าถึงได้พร้อมกัน Linux ยังใช้ในเมนเฟรมและเซิร์ฟเวอร์ได้โดยไม่ต้องปรับเปลี่ยนใดๆ แต่สิ่งนี้ทำให้เกิดข้อกังวลด้านความปลอดภัย เนื่องจากผู้ใช้ที่ไม่ได้รับการร้องขอหรือประสงค์ร้ายสามารถทำลาย เปลี่ยนแปลง หรือลบข้อมูลสำคัญได้ เพื่อความปลอดภัยที่มีประสิทธิภาพ Linux จึงแบ่งการอนุญาตออกเป็น 2 ระดับ
- กรรมสิทธิ์
- การอนุญาต
แนวคิดของไฟล์ Linux การอนุญาต รวมถึง การเป็นเจ้าของ เป็นสิ่งสำคัญใน Linux ที่นี่ เราจะอธิบายสิทธิ์และความเป็นเจ้าของ Linux และจะหารือเกี่ยวกับทั้งสองอย่าง เรามาเริ่มกันที่ ความเป็นเจ้าของ
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ความเป็นเจ้าของไฟล์ Linux
ทุกไฟล์และไดเร็กทอรีบนระบบ Unix/Linux ของคุณถูกกำหนดให้เป็นเจ้าของ 3 ประเภท ตามด้านล่างนี้
ผู้ใช้งาน
ผู้ใช้คือเจ้าของไฟล์ ตามค่าเริ่มต้น บุคคลที่สร้างไฟล์จะกลายเป็นเจ้าของไฟล์ ดังนั้นบางครั้งผู้ใช้จึงถูกเรียกว่าเจ้าของ
บัญชีกลุ่ม
กลุ่มผู้ใช้สามารถมีผู้ใช้หลายคนได้ ผู้ใช้ทั้งหมดที่อยู่ในกลุ่มจะมีสิทธิ์การเข้าถึงไฟล์ของกลุ่ม Linux เหมือนกัน สมมติว่าคุณมีโปรเจ็กต์ที่บุคคลจำนวนหนึ่งต้องการเข้าถึงไฟล์ แทนที่จะกำหนดสิทธิ์ให้กับผู้ใช้แต่ละคนด้วยตนเอง คุณสามารถเพิ่มผู้ใช้ทั้งหมดในกลุ่ม และมอบหมายสิทธิ์ของกลุ่มในไฟล์เพื่อให้เฉพาะสมาชิกกลุ่มนี้และไม่มีใครสามารถอ่านหรือแก้ไขไฟล์ได้
อื่นๆ
ผู้ใช้รายอื่นที่มีสิทธิ์เข้าถึงไฟล์ บุคคลนี้ไม่ได้สร้างไฟล์ และไม่ได้อยู่ในกลุ่มผู้ใช้ที่สามารถเป็นเจ้าของไฟล์ได้ ในทางปฏิบัติก็หมายถึงคนอื่นๆ ดังนั้น เมื่อคุณตั้งค่าการอนุญาตสำหรับผู้อื่น ก็จะเรียกว่าเป็นการอนุญาตที่ตั้งค่าไว้สำหรับโลกด้วย
ตอนนี้คำถามใหญ่เกิดขึ้นได้อย่างไร ลินุกซ์แยกแยะได้ ระหว่างผู้ใช้ทั้งสามประเภทนี้ เพื่อให้ผู้ใช้ 'A' ไม่สามารถส่งผลกระทบต่อไฟล์ซึ่งมีข้อมูล/ข้อมูลสำคัญของผู้ใช้ 'B' อื่น ๆ มันเหมือนกับว่าคุณไม่ต้องการเพื่อนร่วมงานที่ทำงานกับคุณ คอมพิวเตอร์ลินุกซ์เพื่อดูภาพของคุณ นี่คือที่ สิทธิ์ กำหนดไว้ และพวกเขากำหนด พฤติกรรมผู้ใช้.
ให้เราเข้าใจ ระบบอนุญาต บน Linux
สิทธิ์ของไฟล์ Linux
ไฟล์และไดเร็กทอรีแต่ละไฟล์ในระบบ UNIX/Linux ของคุณมีสิทธิ์ 3 ประการต่อไปนี้ที่กำหนดให้กับเจ้าของทั้ง 3 รายตามที่กล่าวไว้ข้างต้น
- อ่าน: การอนุญาตนี้ให้สิทธิ์แก่คุณในการเปิดและอ่านไฟล์ สิทธิ์การอ่านในไดเร็กทอรีทำให้คุณสามารถแสดงรายการเนื้อหาได้
- เขียน: สิทธิ์การเขียนให้สิทธิ์แก่คุณในการแก้ไขเนื้อหาของไฟล์ สิทธิ์การเขียนในไดเร็กทอรีให้สิทธิ์คุณในการเพิ่ม ลบ และเปลี่ยนชื่อไฟล์ที่จัดเก็บไว้ในไดเร็กทอรี พิจารณาสถานการณ์สมมติที่คุณต้องเขียนสิทธิ์ลงในไฟล์แต่ไม่มีสิทธิ์ในการเขียนบนไดเร็กทอรีที่จัดเก็บไฟล์ไว้ คุณจะสามารถแก้ไขเนื้อหาของไฟล์ได้ แต่คุณจะไม่สามารถเปลี่ยนชื่อ ย้าย หรือลบไฟล์ออกจากไดเร็กทอรีได้
- ดำเนินการ: In Windowsโปรแกรมปฏิบัติการมักจะมีนามสกุล “.exe” ซึ่งคุณสามารถเรียกใช้ได้อย่างง่ายดาย ใน Unix/Linux คุณจะไม่สามารถรันโปรแกรมได้เว้นแต่จะตั้งค่าสิทธิ์ในการดำเนินการไว้ หากไม่ได้ตั้งค่าสิทธิ์ดำเนินการ คุณอาจยังสามารถดู/แก้ไขโค้ดโปรแกรมได้ (ตั้งค่าสิทธิ์การอ่านและเขียนที่ให้มา) แต่ไม่สามารถเรียกใช้ได้
มาดูการอนุญาตไฟล์ใน Linux พร้อมตัวอย่าง:
แอล – แอล บนเทอร์มินัลให้
ls - l
ที่นี่เราได้เน้น '-rw-rw-r–'และโค้ดที่ดูแปลกๆ นี้คือโค้ดที่บอกเราเกี่ยวกับสิทธิ์ Unix ที่มอบให้กับเจ้าของ กลุ่มผู้ใช้ และโลก
ที่นี่ครั้งแรก'-' หมายความว่าเราได้เลือก file.p>
มิฉะนั้น หากเป็นไดเร็กทอรี d จะได้รับการแสดง
ตัวละครค่อนข้างจำง่าย
r = สิทธิ์ในการอ่าน
w = สิทธิ์ในการเขียน
x = ดำเนินการอนุญาต
- = ไม่ได้รับอนุญาต
เรามาดูกันด้วยวิธีนี้
ส่วนแรกของรหัสคือ 'ร-'- สิ่งนี้ชี้ให้เห็นว่าเจ้าของ 'บ้าน' สามารถ:
- อ่านไฟล์
- เขียนหรือแก้ไขไฟล์
- เขาไม่สามารถรันไฟล์ได้เนื่องจากบิตรันไทม์ถูกตั้งค่าเป็น '-'
จากการออกแบบ ลีนุกซ์หลายตัวเช่น Fedora, CentOS, Ubuntuฯลฯ จะเพิ่มผู้ใช้ในกลุ่มที่มีชื่อกลุ่มเดียวกันกับชื่อผู้ใช้ ดังนั้น ผู้ใช้ 'tom' จะถูกเพิ่มในกลุ่มชื่อ 'tom'
ส่วนที่สองคือ 'rw-' สำหรับกลุ่มผู้ใช้ 'บ้าน' และสมาชิกกลุ่มสามารถ:
- อ่านไฟล์
- เขียนหรือแก้ไขไฟล์
ส่วนที่สามมีไว้สำหรับโลกซึ่งหมายถึงผู้ใช้ทุกคน มันบอกว่า 'ร–' ซึ่งหมายความว่าผู้ใช้สามารถ:
- อ่านไฟล์
การเปลี่ยนการอนุญาตไฟล์ / ไดเรกทอรีใน Linux โดยใช้คำสั่ง 'chmod'
สมมติว่าคุณไม่ต้องการให้เพื่อนร่วมงานเห็นภาพส่วนตัวของคุณ ซึ่งสามารถทำได้โดยการเปลี่ยนการอนุญาตของไฟล์
เราสามารถใช้ 'ชมิด' คำสั่งซึ่งย่อมาจาก 'เปลี่ยนโหมด' ด้วยการใช้คำสั่ง เราสามารถตั้งค่าการอนุญาต (อ่าน เขียน ดำเนินการ) บนไฟล์/ไดเร็กทอรีสำหรับเจ้าของ กลุ่ม และโลก
ไวยากรณ์:
chmod permissions filename
วิธีการใช้งานมี 2 วิธี คำสั่ง -
- โหมดแอบโซลูท
- โหมดสัญลักษณ์
โหมดสัมบูรณ์ (ตัวเลข) ใน Linux
ในโหมดนี้ ไฟล์ การอนุญาตจะไม่แสดงเป็นอักขระ แต่เป็นเลขฐานแปดสามหลัก.
ตารางด้านล่างนี้แสดงตัวเลขสำหรับประเภทสิทธิ์ทั้งหมด
จำนวน | ประเภทสิทธิ์ | สัญลักษณ์ |
---|---|---|
0 | ไม่ได้รับอนุญาต | - |
1 | ดำเนินงาน | -NS |
2 | เขียน | -ใน- |
3 | ดำเนินการ + เขียน | -wx |
4 | อ่าน | NS- |
5 | อ่าน + ดำเนินการ | rx |
6 | อ่าน+เขียน | ร- |
7 | อ่าน + เขียน + ดำเนินการ | rwx |
มาดูการทำงานของคำสั่งอนุญาต chmod กัน
ในหน้าต่างเทอร์มินัลที่ระบุข้างต้น เราได้เปลี่ยนการอนุญาตของไฟล์ 'ตัวอย่างเป็น '764'
รหัสสัมบูรณ์ '764' ระบุไว้ดังนี้:
- เจ้าของสามารถอ่าน เขียน และดำเนินการได้
- กลุ่มผู้ใช้สามารถอ่านและเขียนได้
- โลกสามารถอ่านได้เท่านั้น
ซึ่งแสดงเป็น '-rwxrw-r–
นี่คือวิธีที่คุณสามารถเปลี่ยนการอนุญาตผู้ใช้ใน Linux บนไฟล์โดยการกำหนดหมายเลขที่แน่นอน
โหมดสัญลักษณ์ใน Linux
ในโหมดสัมบูรณ์ คุณเปลี่ยนการอนุญาตสำหรับเจ้าของทั้ง 3 คน ในโหมดสัญลักษณ์ คุณสามารถแก้ไขการอนุญาตของเจ้าของเฉพาะได้ ใช้สัญลักษณ์ทางคณิตศาสตร์เพื่อแก้ไขการอนุญาตไฟล์ Unix
OperaTor | Descriptไอออน |
---|---|
+ |
เพิ่มสิทธิ์ให้กับไฟล์หรือไดเร็กทอรี |
- |
ลบการอนุญาต |
= |
ตั้งค่าการอนุญาตและแทนที่การอนุญาตที่ตั้งไว้ก่อนหน้านี้ |
เจ้าของต่างๆ จะแสดงเป็น –
การแสดงนัยของผู้ใช้ | |
---|---|
u |
ผู้ใช้/เจ้าของ |
g |
กลุ่ม |
o |
อื่น ๆ |
a |
ทั้งหมด |
เราจะไม่ใช้สิทธิ์อนุญาตในรูปแบบตัวเลขเช่น 755 แต่จะใช้ตัวอักษรเช่น rwx มาดูตัวอย่างกัน
การเปลี่ยนความเป็นเจ้าของและกลุ่มใน Linux
หากต้องการเปลี่ยนสิทธิ์การเป็นเจ้าของไฟล์/ไดเร็กทอรี คุณสามารถใช้คำสั่งต่อไปนี้:
chown user filename
ในกรณีที่คุณต้องการเปลี่ยนผู้ใช้และกลุ่มสำหรับไฟล์หรือไดเร็กทอรีให้ใช้คำสั่ง
chown user:group filename
เรามาดูสิ่งนี้กันในการดำเนินการ
ในกรณีที่คุณต้องการเปลี่ยนเฉพาะเจ้าของกลุ่ม ให้ใช้คำสั่ง
chgrp group_name filename
'chgrp' ย่อมาจาก Change Group
ปลาย
- ไฟล์ /etc/group ประกอบด้วยกลุ่มทั้งหมดที่กำหนดไว้ในระบบ
- คุณสามารถใช้คำสั่ง “groups” เพื่อค้นหากลุ่มทั้งหมดที่คุณเป็นสมาชิก o
- คุณสามารถใช้คำสั่ง newgrp เพื่อทำงานเป็นสมาชิกกลุ่มอื่นที่ไม่ใช่กลุ่มเริ่มต้นของคุณ
- คุณไม่สามารถมี 2 กลุ่มที่เป็นเจ้าของไฟล์เดียวกันได้
- คุณไม่มีกลุ่มที่ซ้อนกันใน Linux กลุ่มหนึ่งไม่สามารถเป็นกลุ่มย่อยของกลุ่มอื่นได้
- x- การดำเนินการไดเร็กทอรีหมายถึงการได้รับอนุญาตให้ "ป้อน" dir และเข้าถึง sub-dirs ได้
- มีการอนุญาตอื่น ๆ ที่คุณสามารถตั้งค่าในไฟล์และไดเร็กทอรี ซึ่งจะครอบคลุมในบทช่วยสอนขั้นสูงในภายหลัง
สรุป:
- Linux เป็นระบบที่มีผู้ใช้หลายคนใช้การอนุญาตและความเป็นเจ้าของเพื่อความปลอดภัย
- ระบบ Linux มีผู้ใช้สามประเภท ได้แก่ ผู้ใช้ กลุ่ม และอื่นๆ
- Linux แบ่งสิทธิ์ของไฟล์ออกเป็นการอ่าน เขียน และดำเนินการ ซึ่งแสดงด้วย r,w และ x
- การอนุญาตในไฟล์สามารถเปลี่ยนแปลงได้โดยคำสั่ง 'chmod' ซึ่งสามารถแบ่งเพิ่มเติมเป็นโหมดสัมบูรณ์และสัญลักษณ์ได้
- คำสั่ง 'chown' สามารถเปลี่ยนสิทธิ์การเป็นเจ้าของไฟล์/ไดเร็กทอรีได้ ใช้คำสั่งต่อไปนี้: chown user file หรือ chown user:group file
- คำสั่ง 'chgrp' สามารถเปลี่ยนความเป็นเจ้าของกลุ่มได้ ชื่อไฟล์กลุ่ม chhrgrp
- x - eXecuting ไดเร็กทอรีหมายถึงอะไร? ตอบ: ได้รับอนุญาตให้ "เข้า" dir และเข้าถึง sub-dirs ได้