การอนุญาตเริ่มต้นโดยไม่ผ่านเมื่อติดตั้งวอลุ่ม HFS + ใน linux


8

ฉันมี macbook pro สำหรับการบูทคู่กับ Snow Leopard และ Kubuntu 11.10 และต้องการอ่าน (ไม่ต้องกังวลเกี่ยวกับการเขียน) ไดเรกทอรีบ้าน Mac ของฉันที่บ้านเมื่อฉันใช้ Kubuntu

ฉันสามารถติดตั้งได้โดยไม่มีปัญหาใด ๆ แต่ผู้ใช้ของฉันบน Kubuntu บนไม่สามารถดูไฟล์ใน HFS + ที่เป็นเจ้าของโดยผู้ใช้ mac เนื่องจากมี uid ที่แตกต่างกัน (502 บน Mac, 1000 บน Kubuntu)

ดู kernel docs เกี่ยวกับ HFS ​​+ฉันอ่านแล้ว:

When mounting an HFSPlus filesystem, the following options are accepted:
[CUT]
    uid=n, gid=n
        Specifies the user/group that owns all files on the filesystem
        that have uninitialized permissions structures.
        Default:  user/group id of the mounting process.

ดังนั้นฉันจึงลองใช้ตัวเลือกเหล่านี้:

$ sudo mount -t hfsplus -o uid=1000,gid=1000 /dev/sda2 /mnt/Mac

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

ฉันรู้ว่าฉันสามารถเปลี่ยนรหัสผู้ใช้ของฉันบน Ubuntu เพื่อให้ตรงกับ Mac Os X แต่ฉันต้องการหลีกเลี่ยงถ้าเป็นไปได้

คำตอบ:


9

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

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

แก้ไข:

นอกจากนี้การอ่านเอกสารที่ฉันรู้ว่าmapตัวเลือก (1.10 ขึ้นไป) อาจพอดีกว่า:

sudo bindfs --map=502/1000 /media/diskFoo ~/myUIDdiskFoo

ทางออกที่ยอดเยี่ยมมาก ช่วยแก้ปัญหาโดยไม่เปลี่ยนพฤติกรรมเริ่มต้นของระบบปฏิบัติการและทำให้มีตัวเลือกเพิ่มเติมมากมาย เพียงแค่ระมัดระวังหากระบบถูกแชร์กับผู้ใช้รายอื่นนี่อาจทำให้ไฟล์ส่วนตัวกับผู้ชมที่ไม่คาดคิด
gerlos

1
ใช่. ฉันประหลาดใจที่ยูทิลิตีการติดตั้งระบบไม่ได้ให้ความสามารถนี้ หรือคุณสามารถใช้mapฟังก์ชั่นของ bindfs เพื่อจับคู่ผู้ใช้ 502 ถึง 1,000 ซึ่งอาจปลอดภัยกว่าและมากกว่าที่คุณตั้งใจไว้
Catskul

ในขณะที่ฉันไม่มีชื่อเสียงที่จะแสดงความคิดเห็นฉันแค่จะทราบว่ามีข้อผิดพลาดเล็ก ๆ น้อย ๆ ในคำตอบของ Catskul, an = หายไปควรจะเป็น: sudo bindfs --map = 502/1000 / media / diskFoo ~ / myUIDdiskFoo
J. Simon van der Walt

1

ในที่สุดฉันสร้างผู้ใช้ linux ที่มี UID เดียวกันกับผู้ใช้ mac os x ของฉัน แต่มันไม่สามารถเรียกดูทุกไดเรกทอรีในบ้านของฉันบน mac hfs + ไดรฟ์ข้อมูลเนื่องจากมีไฟล์จำนวนมากที่เป็นเจ้าของโดยผู้ใช้ mac "ไม่รู้จัก" UID 99 (ดูhttp://googlemac.blogspot.com/2007/03/user-99-unknown.html )

ดูเหมือนว่าพวกเขาทำเช่นนั้นเพื่อให้คุณสามารถเมานต์และอ่านระดับเสียงของคุณเมื่อคุณเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่น เมื่อผู้ใช้ทั่วไปดูไฟล์เหล่านั้นที่เป็นของ UID 99 เขาจะเห็นพวกเขาในขณะที่เขาเป็นเจ้าของ ค่อนข้างแปลก มีเพียงรูทเท่านั้นที่เห็นพวกเขา

ดังนั้นฉันเริ่มระบบใหม่ใน Mac Os X ลงชื่อเข้าใช้ด้วยผู้ใช้อื่นที่มีสิทธิ์ระดับผู้ดูแลระบบและใช้ chown -R 502: 20 / Users / gerlos / * เพื่อเปลี่ยนเจ้าของไฟล์ทุกไฟล์ในบ้านของฉัน ตอนนี้ฉันสามารถอ่านทุกอย่างได้โดยไม่มีปัญหา

หมายเหตุ:

  • เครื่องมือ kubuntu gui เริ่มต้นเพื่อสร้างผู้ใช้ใหม่บน Kubuntu 11.10 ไม่สามารถสร้างผู้ใช้ที่มี UID น้อยกว่า 1,000 ใช้ adduser บนเทอร์มินัลแทน
  • คุณสามารถรู้ UID ของผู้ใช้โดยใช้คำสั่ง "id" บนเทอร์มินัล
  • บน mac os x คุณจะต้องรูทเพื่อดูเจ้าของไฟล์จริง ดังนั้นคาดว่าผลลัพธ์ที่แตกต่างกันหากคุณพิมพ์ "ls -n / Users / gerlos" และ "sudo ls -n / Users / gerlos"

ความแตกต่างใน OSX ระหว่างผู้ใช้ยูนิกซ์ "ของจริง" และผู้ใช้ที่ Finder ได้รับการยอมรับนั้นทำให้ฉันปวดหัวมาก ... มันสามารถทำให้แอพบางตัวบน OSX ทำงานแปลก ๆ (เช่น Dropbox จะไม่ซิงค์ไฟล์ของคุณ) เพื่อหลีกเลี่ยงปัญหาใด ๆ ให้เข้าสู่ระบบ OSX ของคุณเปิดเทอร์มินัลและตรวจสอบให้แน่ใจว่าผู้ใช้ยูนิกซ์ของคุณเป็นเจ้าของทุกสิ่งที่ผู้ใช้ OS X ของคุณเป็นเจ้าของอยู่แล้ว บางทีฉันอาจไม่เข้าใจบางสิ่ง แต่ในประสบการณ์ใช้ GUI ไม่เพียงพอ
gerlos

1

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

ฉันได้ทดสอบสิ่งนี้ในสถานการณ์ของตัวเองและใช้งานได้ดีกับ uid 99 สำหรับระบบไฟล์ที่ใช้ร่วมกันระหว่างระบบของฉัน ด้วยสิ่งนี้ฉันไม่จำเป็นต้องไปเปลี่ยนไอดี ขอบคุณมากสำหรับการแบ่งปัน สิ่งนี้อาจไม่มากสำหรับคุณอีกต่อไป แต่อาจช่วยคนอื่นได้ ไชโย


1
ขวา. ทางออกที่ดีที่สุดคือปล่อย UID และการอนุญาตเพียงอย่างเดียวติดตั้งระบบไฟล์ HFS + ของคุณตามปกติแล้วติดตั้งที่บ้านของคุณภายใต้ระบบไฟล์ HFS + โดยใช้ bindfs ดังนั้นทุกสิ่งจะปรากฏเป็นของผู้ใช้ linux ของคุณ วิธีนี้คุณไม่จำเป็นต้องใช้ UID ที่กำหนดเองไม่ต้องเปลี่ยนสิทธิ์ในระบบไฟล์ HFS + ดังนั้นคุณจึงรักษาพฤติกรรมเริ่มต้นในทั้งสองระบบ เนื่องจากคุณสามารถเมานต์ด้วย bindfs ที่บ้านของผู้ใช้แต่ละคนคุณสามารถเก็บรักษาไฟล์ส่วนตัวแม้ในระบบที่ใช้ร่วมกัน
gerlos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.