สิทธิ์สำหรับไฟล์ใหม่ในไดเรกทอรีที่ใช้ร่วมกัน


31

เราเพิ่งได้ iMac ใหม่กำลังใช้/Users/Sharedไดเรกทอรีเพื่อจัดเก็บเนื้อหาสื่อ (รูปภาพ, เสียง, วิดีโอ) ที่เราต้องการให้ผู้ใช้ทุกคนในเครื่องสามารถเข้าถึงได้ หลังจากการคัดลอกไฟล์ทั้งหมดในตอนแรกเราตั้งค่าการอนุญาตที่ต้องการแล้วใช้การอนุญาตเดียวกันกับเนื้อหาไดเรกทอรีทั้งหมดซ้ำ สิ่งนี้ทำงานได้ดียกเว้นเมื่อใดก็ตามที่มีคนสร้างไฟล์หรือไดเรกทอรีใหม่มันไม่มีสิทธิ์เหมือนกันและเราต้องทำซ้ำกระบวนการอนุญาตทั้งหมดก่อนที่ทุกคนจะสามารถเข้าถึงได้

มีวิธีที่เราสามารถตั้งค่าการอนุญาตสำหรับไฟล์ / ไดเรกทอรีใหม่ทั้งหมดที่สร้างขึ้นภายในไดเรกทอรีนั้นหรือไม่?


Extended Attributes จะอนุญาตให้คุณตั้งค่าสิทธิ์การเข้าถึงแบบเสรีและบอกให้พวกเขาเผยแพร่ในไดเรกทอรีและทำสิ่งใหม่ต่อไป แต่สำหรับชีวิตของฉันฉันไม่สามารถหาคำแนะนำได้ ฉันสามารถทำได้บน OSX Servers โดยใช้ Server Admin Tools ซึ่งฉันคิดว่าไม่ใช่ตัวเลือกที่ทำงานได้ที่นี่
Jason Salaz

Nope เราสามารถเข้าถึงดิสก์ระบบปฏิบัติการที่มาพร้อมกับ iMac เท่านั้น
Daniel Standage

1
หากคุณมีความสุขในการทำงานกับเครื่องเทอร์มินัลนี่อาจเป็นคำตอบที่คุณต้องการ
boehj

คำตอบ:


32

คุณไม่สามารถทำได้ด้วยสิทธิ์แบบ POSIX แบบดั้งเดิม แต่คุณสามารถใช้รายการควบคุมการเข้าถึงที่สืบทอดได้ หากต้องการอนุญาตให้เข้าถึงแบบอ่าน + เขียนสำหรับกลุ่ม "พนักงาน" ทั้งหมดในทุกสิ่งที่ / ผู้ใช้ / แชร์ / แบ่งใช้จริงๆคุณต้องใช้:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

file_inherit,directory_inheritส่วนหนึ่งหมายความว่าการควบคุมการเข้าถึงรายการนี้จะถูกเพิ่มโดยอัตโนมัติไปยังไฟล์ใหม่และโฟลเดอร์ที่สร้างขึ้นในโฟลเดอร์นี้ แต่มันไม่ได้โดยอัตโนมัติใช้กับรายการที่มีอยู่แล้ว (ที่ว่าทำไมฉันเพิ่ม-Rธงchmod- ที่นำไปใช้กับทุกอย่างในปัจจุบันภายใน โฟลเดอร์) และมันจะไม่ถูกนำไปใช้กับรายการที่สร้างขึ้นที่อื่นจากนั้นย้ายไปที่โฟลเดอร์นี้ (ฉันไม่รู้วิธีนี้เลยขออภัย)


ฉันชอบที่จะหาวิธีใช้งานนี้แม้กระทั่งไฟล์ที่ถูกย้ายไปยังไดเรกทอรีที่ใช้ร่วมกัน มันน่าผิดหวังที่มีไฟล์ในไดเรกทอรีที่แชร์ซึ่งท้ายไม่ถูกแชร์อย่างแท้จริง
radven

นี่ยังคงไม่อนุญาตให้เขียนโฟลเดอร์หากสิทธิ์ของ posix ไม่อนุญาต คือฉันสร้างโฟลเดอร์นี้ใน Finder: drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folderเครื่องหมาย + ท้ายหมายถึงมี ACL ที่ขยายเพิ่มซึ่งใช้โดยใช้คำสั่งของคุณด้านบน แต่ Windows ยังบอกว่าสิทธิ์ถูกปฏิเสธถ้าฉันพยายามเขียนไฟล์ไปยังโฟลเดอร์นี้ เพียงchmod g+w untitled\ folderให้ผมเขียนไป อาจเป็นเพราะฉันติดตั้ง Samba เพื่อหลีกเลี่ยงการใช้ SMB ใหม่ที่น่ากลัวของ OSX
Chris Dragon

@ChrisDragon: ดูเหมือนว่าแซมบ้าไม่ถูกต้องตาม ACL ฉันพบข้อเสนอแนะที่นี่เพื่อเพิ่มnt acl support = noใน[Global]ส่วนของ /etc/smb.conf แต่ฉันไม่แน่ใจว่ายังคงมีความเกี่ยวข้องใน samba รุ่นปัจจุบัน
Gordon Davisson

4

อีกวิธีคือใช้เทอร์มินัล (aka เชลล์หรือพรอมต์คำสั่ง) เพื่อสร้าง / แก้ไข (ต้องดำเนินการในฐานะผู้ใช้ขั้นสูงดูที่ sudo) ไฟล์:
/etc/launchd-user.conf
เพิ่มบรรทัด:
umask 000
บันทึกและรีบูต ไฟล์ / โฟลเดอร์ใหม่ (รวมถึงไฟล์ที่เปลี่ยนแปลงโดยบันทึกเป็น) จะช่วยให้ทุกคนสามารถอ่าน / เขียนได้

สิ่งนี้ทำงานโดยการเปลี่ยนสิทธิ์การสร้างไฟล์เริ่มต้นสำหรับโปรแกรมในขณะที่วิธีการ ACL ทำงานในแง่ของกฎการเข้าถึงที่ผูกไว้กับไฟล์และโฟลเดอร์เฉพาะ

หากไม่มีการปรับแต่งนี้ไฟล์จะถูกสร้างขึ้นเพื่อให้ผู้ใช้: อ่าน - เขียน, กลุ่ม & อื่น ๆ : อ่านอย่างเดียว

หากคุณกำลังใช้งานร่วมกันระหว่างคอมพิวเตอร์หลายเครื่องคุณจะต้องทำสิ่งนี้กับคอมพิวเตอร์ทุกเครื่องที่จะใช้การแชร์

หากคุณมีไฟล์และโฟลเดอร์ที่มีอยู่ในพื้นที่แชร์คุณต้องทำให้ทุกคนสามารถอ่าน / เขียนได้โดยใช้:
sudo chmod -R og+w <shared-folder-name>

คำสั่งอ่านเป็นภาษาอังกฤษในโหมดเปลี่ยนเรียกซ้ำผ่านโฟลเดอร์ย่อยและไฟล์ทั้งหมดสิทธิ์ & กลุ่มอื่น ๆ เพิ่มการเข้าถึงการเขียนเริ่มต้นที่โฟลเดอร์ด้วย

วิธีการนี้ได้รับการกล่าวถึงในฟอรัมเพื่อทำงานอย่างน้อยเร็วเท่าที่ 10.6 และยังคงใช้งานได้ใน 10.7

ปัจจัยอื่น ๆ ยังคงมีผลต่อการเข้าถึงเนื้อหา ตัวอย่างเช่นการตั้งค่าการอนุญาตในแผงควบคุมการแชร์การอนุญาตโฟลเดอร์ภายในบ้าน / ACLs และเมื่อใช้เทอร์มินัลใด ๆ umask จะมีผลกับเชลล์

ค้นหาสิทธิ์umaskและPosix ของไฟล์สำหรับรายละเอียดเกี่ยวกับแนวคิด Unix เหล่านี้ ในการเขียนอัพไดเรกทอรีคำคือยูนิกซ์ parlance ตรงกันกับโฟลเดอร์ นอกจากนี้คุณยังจะได้พบกับข้อกำหนด UID และ GID: รหัสผู้ใช้และกลุ่มซึ่งกำหนดความเป็นเจ้าของ Posix ของการรันโปรแกรม (กระบวนการ) โปรดทราบว่า UID และ GID เป็นตัวเลขซึ่งอาจเหมือนหรือแตกต่างกันสำหรับชื่อผู้ใช้ที่ระบุในคอมพิวเตอร์หลายเครื่อง หมายเลขเหล่านี้ถูกกำหนดให้กับชื่อในบัญชีคำสั่งซื้อจะถูกสร้างขึ้นบนคอมพิวเตอร์ที่กำหนดโดยทั่วไปเริ่มต้นด้วย ID 501 เครือข่ายในบ้านไม่มีกลไกในการประสานงานที่ได้รับมอบหมายเหล่านี้กับคอมพิวเตอร์ ดังนั้นในเครือข่ายแชร์ไฟล์อาจปรากฏขึ้นเป็นของผู้ใช้ที่แตกต่างกันเพราะ ID ผู้ใช้กับการผูกชื่อผู้ใช้จะถูกกำหนดจากมุมมองของคอมพิวเตอร์กำลังเข้าถึงไฟล์ ดังนั้นการแชร์จึงอนุญาตให้ทุกคนเข้าถึงไฟล์ได้ในทุก ๆ องศา กล่าวอีกนัยหนึ่งการอนุญาตให้ใช้ "อื่น ๆ " ของ Posix เป็นข้อ จำกัด ในการเข้าถึงอย่างไม่ จำกัด ตั้งแต่การอนุญาตให้เข้าถึงได้ค่อนข้างคาดเดาได้ แต่ไม่แน่นอนขึ้นอยู่กับ ID ผู้ใช้ที่กำหนดบนคอมพิวเตอร์ที่แตกต่างกัน สิ่งนี้นำไปสู่การเปลี่ยนแปลงที่ไร้สาระอย่างชัดเจนในประสบการณ์ซึ่งในบางเครือข่ายเช่นการตั้งค่าที่มีบัญชีผู้ใช้เพียงบัญชีเดียวเท่านั้นที่เคยสร้างขึ้นใน Mac แต่ละเครื่องจะสามารถแชร์ได้โดยไม่ต้องมีการอนุญาตใด ๆ ไม่ว่าชื่อบัญชีจะเป็นอะไร) ในขณะที่เครือข่ายอื่นที่ใช้บัญชีผู้ใช้หลายบัญชีต่อ Mac จะเห็นปัญหาได้ทันที ดังนั้นบางกลุ่มจะไม่ต่อสู้กับสิ่งนี้ในขณะที่บางกลุ่มอาจเห็นปัญหาที่เกิดขึ้นเมื่อเวลาผ่านไปหรือปัญหาที่ปรากฏขึ้น / หายไปเองตามธรรมชาติ

มันเป็นเรื่องลึกลับที่แอปเปิลทิ้งข้อบกพร่องในการใช้งานที่น่ารำคาญเช่นนี้ไว้ในการกำหนดค่าของความสามารถในการแบ่งปันไฟล์อย่างง่ายดาย

บนดิสก์ภายนอกปัญหานี้ได้รับการแก้ไขด้วยตัวเลือก "ละเว้นสิทธิ์บนไดรฟ์ข้อมูลนี้" อาจมีคุณสมบัติที่คล้ายกันสำหรับการแชร์ไฟล์ Apple แต่มันอยู่ที่ไหน

หากคุณม้วนตัวคุณเองเป็นเจ้าของบริการแซมบ้ามีกลไกอื่น ๆ สำหรับจัดการปัญหาเหล่านี้ แต่แซมบ้าไม่ได้ใช้งานง่ายเลย


/etc/launchd-user.conf launchctlจะเลิกในความโปรดปรานของการใช้ ดูsupport.apple.com/th-th/HT201684
Jess Bowers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.