วิธีการเปลี่ยนการแชร์ / การอนุญาตโฟลเดอร์ใน Mac OS X ซ้ำ ๆ


53

มีเครื่องมือหรือสคริปต์ Mac OS X หรือไม่ที่อนุญาตให้ฉันเปลี่ยนคุณสมบัติการแชร์ / การอนุญาตของไฟล์และโฟลเดอร์ย่อยในโฟลเดอร์แบบเรียกซ้ำ? ตัวอย่างเช่นเพื่อให้ทุกคนหรือผู้ใช้เฉพาะสามารถอ่านและเขียนอ่านอย่างเดียวหรือเขียนเท่านั้น

คำตอบ:


73

ลองใช้คำสั่ง chmod ตัวอย่างเช่นหากคุณมีชื่อไดเรกทอรี mydir คำสั่งต่อไปนี้จะเปิดใช้งานการอ่าน / เขียนสำหรับ mydir นั้นซ้ำ

$ chmod -R +rw mydir

สำหรับข้อมูลเพิ่มเติม:

$ man chmod

18
คำตอบที่ดีเป็นตัวอย่างที่ไม่ดี เมื่อเพิ่มการเข้าถึงแบบอ่านและ / หรือเขียนไปยังโฟลเดอร์คุณต้องเพิ่มการเข้าถึงเพื่อเรียกใช้ ("x", การค้นหา aka) เช่นกันมิฉะนั้นการใช้ r / w จะไร้ประโยชน์ ในทางกลับกันคุณไม่ต้องการเพิ่มเอ็กซีคิวต์ลงในไฟล์ เมื่อทำการเปลี่ยนแปลงซ้ำคุณกำลังดำเนินการกับไฟล์และโฟลเดอร์หลายแบบ คำตอบคือการใช้คุณสมบัติ "smart execute" (ตัวพิมพ์ใหญ่ X) ของ chmod: chmod -R +rwX mydirจะเพิ่มการประมวลผลก็ต่อเมื่อมันสมเหตุสมผล
Gordon Davisson

กอร์ดอน: การสังเกตที่ยอดเยี่ยม อย่างไรก็ตามไดเรกทอรีปกติจะมีการเปิด x เว้นแต่ผู้ใช้จะทำสิ่งที่ขี้ขลาดที่จะปิด
Hai Vu

1
ขึ้นอยู่กับการอนุญาตเบื้องต้น หากคุณดูในโฟลเดอร์บ้านเริ่มต้นของ Mac ตัวอย่างเช่นคุณจะเห็นโฟลเดอร์ส่วนใหญ่ (เดสก์ท็อปเอกสารห้องสมุด ฯลฯ ) เจ้าของมีสิทธิ์เข้าถึงทุกอย่างเต็มรูปแบบ (rwx) แต่กลุ่มและอื่น ๆ ไม่มีสิทธิ์เข้าถึง (ไม่อ่านเขียนหรือดำเนินการ) หากคุณกำลังเพิ่มอ่านหรือเขียนสำหรับกลุ่มหรืออื่น ๆ ในหนึ่งในโฟลเดอร์เหล่านี้คุณจะต้องเพิ่มดำเนินการเช่นกัน
Gordon Davisson

1
ใช้งานไม่ได้สำหรับฉันใช้ได้เฉพาะกับโฟลเดอร์หลักไม่ใช่โฟลเดอร์ย่อย
delphirules

29

เลือกโฟลเดอร์รูทที่คุณต้องการใช้งานและเปิดตัวตรวจสอบ (CMD-i หรือคลิกขวาและ "แสดงข้อมูล") แผงด้านล่างเป็นที่ที่คุณสามารถจัดการสิทธิ์ได้

เพิ่มและลบสิทธิ์ในรายการที่นั่น หากต้องการใช้การอนุญาตแบบเดียวกันซ้ำกับทุกโฟลเดอร์ย่อยให้คลิกที่ฟันเฟืองแล้วเลือก "นำไปใช้กับรายการที่แนบมา ... "

หมายเหตุ: ฉันสังเกตเห็นว่า "ใช้กับรายการที่แนบมา ... " เป็นสีเทาเมื่อไอคอนล็อคเล็ก ๆ ที่ด้านล่างขวามือของหน้าต่างถูกล็อค หากเป็นกรณีนี้เพียงคลิกที่ล็อคเพื่อปลดล็อคโดยป้อนข้อมูลประจำตัวของคุณแล้วลองอีกครั้งด้วย "ใช้กับรายการที่แนบมา ... "


แม้ว่าโดยทั่วไปแล้วจะมีประโยชน์ แต่ก็ไม่ประสบความสำเร็จตามที่ขอ มันจะแทนที่การอนุญาตในไดเรกทอรีย่อยแทนที่จะเป็นเช่นการเพิ่มผู้ใช้ไปยังทุกคนไม่ว่าจะมีการอนุญาตมาก่อน
Daniel Beck

@DanielBeck คุณผิดมันใช้องค์ประกอบทั้งหมดของสิทธิ์ chmod และ chown นี้เป็นที่ถูกต้องวิธี 'แม็ค' ที่จะทำมัน
ร็อบ

ฉันเพิ่งลองคำตอบนี้ (ในโฟลเดอร์ทดสอบ) และมันไม่ทำงานอย่างถูกต้อง: เนื่องจากโฟลเดอร์โดยทั่วไปคือ 'ปฏิบัติการ' บิตนั้นก็ถูกตั้งค่าไว้ในไฟล์ที่แนบมาทั้งหมดซึ่งผิด ฉันแค่ต้องการเปลี่ยนผู้ใช้และกลุ่ม
ไหล

12

คุณต้องการใช้คำสั่งchmodและchown

หากฉันจำอย่างถูกต้องคุณสามารถเปลี่ยนการอนุญาตเช่นนี้:

chmod -R +a "joshhunt allow read" /some/file/or/folder/
chmod -R +a "Guest deny read" /some/other/folder/
chmod -R +a "Guest deny write" /some/other/folder/

สำหรับรายละเอียดเพิ่มเติมหนึ่งคำสั่งเหล่านี้ค้นหาหน้าคู่มือของตนใน Terminal:

man chmod
man chown

1
วิธีที่ดีที่สุดสำหรับเมื่อพยายามระบุใบอนุญาตสำหรับผู้ใช้เฉพาะคน
megalucio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.