คุณสามารถอธิบายแนวคิดหลักและเครื่องมือบรรทัดคำสั่งที่ใช้เพื่อจัดการสิทธิ์การใช้ไฟล์ได้หรือไม่
คุณสามารถอธิบายแนวคิดหลักและเครื่องมือบรรทัดคำสั่งที่ใช้เพื่อจัดการสิทธิ์การใช้ไฟล์ได้หรือไม่
คำตอบ:
แต่ละไฟล์มีสิทธิ์สำหรับสามหมวดหมู่ที่แตกต่างกัน:
สิทธิ์หมายถึงสิทธิ์ในการอ่านไฟล์สิทธิในการเขียนไฟล์หรือสิทธิในการเรียกใช้ไฟล์ในกรณีของสคริปต์หรือโปรแกรม
บน CLI คุณสามารถ
chown
เช่นchown guillermooo
chgrp
เช่นchgrp root
chmod
เช่นchmod u+w filename.ext
(เพิ่มสิทธิ์การเขียนสำหรับเจ้าของไฟล์filename.ext
)หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับแต่ละของเครื่องมือเหล่านี้เปิด terminal และพิมพ์เช่นman [tool]
man chmod
chown guillermooo
ไม่ควรเป็นเช่นนี้chown guillermooo filename
?
คำเตือน:การเปลี่ยนการอนุญาตของไฟล์และไดเรกทอรีอาจเป็นอันตรายและอาจทำให้ระบบของคุณใช้ไม่ได้ เมื่อรันซ้ำในฐานะรูทบนเส้นทางที่ผิดเราอาจมาถึงจุดที่เราจะต้องติดตั้ง Ubuntu ใหม่ ดังนั้นจึงเป็นความคิดที่ดีที่จะไม่เปลี่ยนการอนุญาตนอกไดเรกทอรี HOME และการรันคำสั่งซ้ำ ๆ เพราะควรหลีกเลี่ยงการรูททุกครั้งที่ทำได้
Ubuntu ได้สืบทอดแนวคิดของการอนุญาตจาก Unix เมื่อไฟล์หรือไดเรกทอรีมีสามงานที่เราสามารถอนุญาตหรือปฏิเสธ:
(การสำรวจไดเรกทอรีหมายถึงการใช้เป็นส่วนหนึ่งของชื่อพา ธ ดูที่https://unix.stackexchange.com/a/13891หรือhttps://unix.stackexchange.com/questions/21251สำหรับคำอธิบายเพิ่มเติม)
นอกจากนี้เรามีสามกรณีที่เราอนุญาตให้:
ตอนนี้เพื่อให้ได้ชุดของการเรียงลำดับเหล่านี้เราใช้ระบบไบนารีที่แต่ละบิตกำหนดสิทธิ์ สามารถแสดงได้ดีที่สุดในตารางต่อไปนี้
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
ตอนนี้ถ้าเราต้องการตัวอย่าง
ก) เจ้าของไฟล์ (= ผู้ใช้) มีอาอี๊ด, Wพระราชพิธี, และ e x ecute อนุญาต
ข) ไฟล์ของกลุ่มได้รับอาอี๊ดและ e x ecute สิทธิ์และ
ค) คนอื่น ๆ ทุกคนควรจะมีเพียงRเข้าถึงอี๊ด
จากนั้นการอนุญาตไฟล์ผลลัพธ์จะเป็น:
u g o
rwx r-x r--
เพื่อให้ได้สิ่งนี้ในจำนวนฐานแปดเช่น สำหรับchmod
คำสั่งหรือเมื่อเราต้องเข้าใจข้อผิดพลาดเราจำเป็นต้องกรอกตารางด้านบนดังต่อไปนี้:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
ต้องเพิ่มแต่ละหมายเลขสิทธิ์เพื่อสรุปรวมสำหรับผู้ใช้ (4 + 2 + 1 = 7) กลุ่ม (4 + 0 + 1 = 5) และอื่น ๆ (4 + 0 + 0 = 4) หมายเลขผลลัพธ์คือ:
u g o
7 5 4
ขณะนี้เรามีสองตัวเลือกในการเปลี่ยนบิตสิทธิ์ด้วยchmod
:
chmod u+rwx g+rx o+r filename
หรือง่ายกว่ามากด้วย
chmod 751 filename
คำสั่งทั้งสองจะทำเช่นเดียวกัน
สิทธิ์เริ่มต้นของไฟล์ที่สร้างขึ้นใหม่ในบ้านของเราจะเป็น 664 (-rw-rw-r--)
หากเราต้องการให้ไฟล์ทำงานได้เป็นโปรแกรมเราจะต้องเปลี่ยนการอนุญาตนี้
โปรดทราบว่าเราจะต้องเปลี่ยนการอนุญาตของไดเรกทอรีที่สามารถเรียกใช้งานไฟล์นี้ได้ด้วยหากตั้งค่าทั้งบิตของไฟล์และไดเรกทอรีที่ใช้งานได้ของไฟล์ไว้เราจะอนุญาตให้เรียกใช้ไฟล์นี้เป็นโปรแกรม
เมื่อคัดลอกไฟล์ไปที่บ้านของเรามันจะสูญเสียสิทธิ์ซึ่งจะถูกแทนที่ด้วยสิทธิ์เริ่มต้นของเราเอง (เว้นแต่ว่าเราคัดลอกโดยใช้ตัวเลือกขั้นสูงเช่นตัวเลือกการเก็บถาวร)
นอกจากนี้โปรดทราบว่าไฟล์อาจได้รับอนุญาตจากจุดเชื่อมต่อ ตัวเลือกการเมานต์ สิ่งนี้มีความสำคัญเมื่อทำการติดตั้งไดรฟ์ที่ฟอร์แมต Windows ซึ่งไม่รองรับสิทธิ์ Unix
ในไม่ช้าเราก็รู้ว่านี่เป็นเพียงครึ่งหนึ่งของเรื่องราว เราจำเป็นต้องแยกแยะข้าวของ ในการทำเช่นนี้แต่ละไฟล์หรือโฟลเดอร์จะมีเจ้าของที่กำหนดไว้และสมาชิกกลุ่มที่กำหนดไว้
ทุกครั้งที่เราสร้างไฟล์เราจะเป็นเจ้าของไฟล์และกลุ่มของไฟล์จะเป็นเราด้วย ด้วยls -l
เราสามารถดูสิทธิ์การเป็นเจ้าของและกลุ่มตามที่เห็นได้จากผลลัพธ์ตัวอย่างต่อไปนี้:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- เราได้รับอนุญาตให้เปลี่ยนสิทธิ์กลุ่มหรือความเป็นเจ้าของไฟล์ที่เป็นของเรา
หากเราไม่ใช่เจ้าของไฟล์เราจะได้รับPermission denied
ข้อผิดพลาด เฉพาะ root เท่านั้นที่สามารถเปลี่ยนแปลงสิ่งนี้สำหรับไฟล์ทั้งหมด นี่คือเหตุผลที่เราต้องใช้sudo
เมื่อแก้ไขการอนุญาตของไฟล์ที่ไม่ใช่ของเรา มีคำสั่งในตัวสองคำสั่งchown
สำหรับผู้ใช้และchgrp
กลุ่ม
หากต้องการเปลี่ยนความเป็นเจ้าของไฟล์จากใครเป็นtakkat
เราอาจใช้คำสั่งนี้:
sudo chown takkat testfile
หากต้องการเปลี่ยนกลุ่มของไฟล์ที่takkat
เราออก
sudo chgrp takkat testfile
อ่าน manpages ของคำสั่งสำหรับรายละเอียดและตัวเลือกเพิ่มเติม นอกจากนี้ยังมีคำแนะนำที่ประณีตยิ่งขึ้นสำหรับการอ่านเพิ่มเติม:
ค้นหาคำถามที่เกี่ยวข้องได้ที่นี่: