ภายใน "MyDir / Library / Application Support / Games" เป็นไดเรกทอรีที่ฉันต้องการให้ผู้ใช้ทุกคนอ่าน อย่างไรก็ตามฉันไม่ต้องการให้พวกเขาอ่านไดเรกทอรีอื่นใน MyDir
วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร?
ขอบคุณ
ภายใน "MyDir / Library / Application Support / Games" เป็นไดเรกทอรีที่ฉันต้องการให้ผู้ใช้ทุกคนอ่าน อย่างไรก็ตามฉันไม่ต้องการให้พวกเขาอ่านไดเรกทอรีอื่นใน MyDir
วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร?
ขอบคุณ
คำตอบ:
ไม่มีวิธีที่ดีในการทำเช่นนี้เพราะในการเข้าถึงไดเรกทอรีนั้นผู้ใช้คนอื่นจะต้องสามารถเข้าไปใน MyDir, MyDir / Library ฯลฯ ที่กล่าวว่ามีสองวิธีในการจัดเรียง - เพื่อให้บรรลุ:
คุณสามารถตั้งค่าการอนุญาตบน MyDir, MyDir / Library, ฯลฯ เพื่ออนุญาตการส่งผ่าน แต่ไม่สามารถอ่านได้ ปัญหาเกี่ยวกับวิธีการนี้: ผู้ใช้รายอื่นจะไม่สามารถนำทางไปยังโฟลเดอร์ได้ตามปกติพวกเขาจะต้องใช้ตัวเลือก Go to Folder ของ Finder's (หรือCmd+ Shift+ G) แล้วพิมพ์เส้นทางลงไป นอกจากนี้แม้ว่าพวกเขาจะไม่สามารถดูเนื้อหาของ MyDir, MyDir / Library ฯลฯ พวกเขาจะสามารถเข้าถึงไฟล์ที่นั่นหากพวกเขาใหม่ (/ สามารถเดาได้) ชื่อ เนื่องจากเนื้อหาของไลบรารี่มีแนวโน้มที่จะคาดเดาได้ซึ่งหมายความว่าพวกเขาจะสามารถเข้าถึงได้ที่ MyDir / Library / Preferences, MyDir / Library / Keychains และอื่น ๆ เว้นแต่คุณจะได้รับการปกป้องอย่างเหมาะสม สมมติว่าคุณต้องการทำสิ่งนี้นี่คือคำสั่งการตั้งค่าที่เกี่ยวข้อง (คำเตือน: สิ่งเหล่านี้ไม่สามารถย้อนกลับได้ง่าย
chmod og= MyDir/* MyDir/Library/* MyDir/Library/Application\ Support/*
chmod og=x MyDir MyDir/Library MyDir/Library/Application\ Support
chmod og=rx MyDir/Library/Application\ Support/Games
คุณสามารถใส่เนื้อหาในที่ใดก็ได้ที่สามารถเข้าถึงได้มากขึ้นและทำให้ MyDir / Library / Application Support / Games เป็น symlink ปัญหาที่อาจเกิดขึ้นกับสิ่งนี้มาจากโปรแกรมที่ไม่ได้ติดตาม symlinks (โดยเฉพาะตัวติดตั้งที่อาจแทนที่ด้วยไดเรกทอรีจริง - คุณต้องล้างข้อมูลหลังจากนั้นด้วยตนเอง) นี่คือตัวอย่างการใช้ / Users / Shared / Games เป็นตำแหน่งสาธารณะ:
mkdir /Users/Shared/Games
ln -s /Users/Shared/Games MyDir/Library/Application\ Support/Games