ฉันจะแชร์ไดเรกทอรีกับผู้ใช้รายอื่นได้อย่างไร?


8

ฉันไม่ต้องการให้ทุกคนในระบบสามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันได้ฉันต้องการให้เข้าถึงได้เฉพาะกลุ่มผู้ใช้ที่ จำกัด

ฉันจะทำอย่างนั้นได้อย่างไร

คำตอบ:


9

นำมาจากโพสต์ที่ยอดเยี่ยมในฟอรั่ม Ubuntuโดย Morbius1

วิธี Linux แบบคลาสสิกในการทำสิ่งต่าง ๆ เช่นนี้:

  1. สร้างโฟลเดอร์แชร์:

    sudo mkdir /home/Shared
    
  2. สร้างกลุ่มผู้ใช้ใหม่:

    sudo addgroup newgroup
    
  3. เปลี่ยนความเป็นเจ้าของโฟลเดอร์แชร์เป็นกลุ่มใหม่:

    sudo chown :newgroup /home/Shared
    
  4. เพิ่มผู้ใช้ที่คุณต้องการในกลุ่มนั้น:

    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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.