ฉันไม่ต้องการให้ทุกคนในระบบสามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันได้ฉันต้องการให้เข้าถึงได้เฉพาะกลุ่มผู้ใช้ที่ จำกัด
ฉันจะทำอย่างนั้นได้อย่างไร
ฉันไม่ต้องการให้ทุกคนในระบบสามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันได้ฉันต้องการให้เข้าถึงได้เฉพาะกลุ่มผู้ใช้ที่ จำกัด
ฉันจะทำอย่างนั้นได้อย่างไร
คำตอบ:
นำมาจากโพสต์ที่ยอดเยี่ยมในฟอรั่ม Ubuntuโดย Morbius1
วิธี Linux แบบคลาสสิกในการทำสิ่งต่าง ๆ เช่นนี้:
สร้างโฟลเดอร์แชร์:
sudo mkdir /home/Shared
สร้างกลุ่มผู้ใช้ใหม่:
sudo addgroup newgroup
เปลี่ยนความเป็นเจ้าของโฟลเดอร์แชร์เป็นกลุ่มใหม่:
sudo chown :newgroup /home/Shared
เพิ่มผู้ใช้ที่คุณต้องการในกลุ่มนั้น:
sudo adduser user1 newgroup
ทำซ้ำสำหรับผู้ใช้ทั้งหมด
ตอนนี้คุณมีการตัดสินใจบางอย่างเกี่ยวกับสิ่งที่คุณต้องการให้ผู้ใช้เหล่านั้นสามารถทำได้:
[a]ผู้ใช้กลุ่มทั้งหมดสามารถเพิ่มและลบจากโฟลเดอร์และสามารถอ่านและไม่เขียนไฟล์อื่น ๆ :
sudo chmod 0770 /home/Shared
[b]เหมือนกับข้างบน แต่มีเพียงเจ้าของไฟล์เท่านั้นที่สามารถลบได้:
sudo chmod 1770 /home/Shared
[c]ผู้ใช้กลุ่มทั้งหมดสามารถเพิ่มและลบจากโฟลเดอร์และสามารถอ่านและเขียนไฟล์ของกันและกันได้:
sudo chmod 2770 /home/Shared
[d]เหมือนกับ[c]ยกเว้นมีเพียงเจ้าของไฟล์เท่านั้นที่สามารถลบได้:
sudo chmod 3770 /home/Shared
A 1
ในตำแหน่งแรกของคำสั่ง chmod คือsticky bitซึ่งป้องกันการลบไฟล์ให้กับบุคคลอื่นที่ไม่ใช่เจ้าของ
A 2
ในตำแหน่งแรกของคำสั่ง chmod คือบิต setgidซึ่งบังคับให้ไฟล์ใหม่หรือไฟล์ที่คัดลอกทั้งหมดมีกลุ่มของโฟลเดอร์นั้น
A 3
ในตำแหน่งแรกของคำสั่ง chmod คือการรวมกันของบิตเหนียว ( 1
) & setgid ( +2
)
มีข้อแม้หนึ่งข้อสำหรับสิ่งนี้ตราบเท่าที่บิตของ setgid เกี่ยวข้อง ไฟล์ใหม่ทั้งหมดที่สร้างขึ้นและไฟล์ใด ๆ ที่คัดลอกไปยังโฟลเดอร์นั้นอันที่จริงแล้วจะสืบทอดกลุ่มของโฟลเดอร์ แต่ไม่ย้ายไฟล์ไปยังโฟลเดอร์นั้น ไฟล์ที่ถูกย้ายจะรักษาความเป็นเจ้าของไม่ว่าจะถูกย้ายจากที่ไหน วิธีหนึ่งในการแก้ไขปัญหานี้คือใช้ bindfs
ท้ายที่สุดถ้าคุณต้องการให้คนอื่น ๆ นอกกลุ่มสามารถมองเห็นไฟล์ได้ แต่ไม่เปลี่ยนพวกเขาให้เปลี่ยน 0 สุดท้ายในchmod
คำสั่งเป็น 5 เช่น:
sudo chmod 0775 /home/Shared