วิธีเมานต์ HFS + และเพิกเฉยการอนุญาต


25

ฉันติดตั้ง Ubuntu และ Windows บน MacBook และ Ubuntu เป็นระบบปฏิบัติการหลักของฉัน อย่างไรก็ตามสื่อทั้งหมดของฉันยังคงอยู่ในพาร์ติชัน OSX ของฉัน ฉันต้องการเข้าถึง (อย่างน้อยโฟลเดอร์บ้านผู้ใช้ OSX ของฉัน) จาก Ubuntu โดยไม่ต้องเปิดโปรแกรมเล่นสื่อ (หรืออะไรก็ได้) เป็นรูท นอกจากนี้เนื่องจากฉันต้องการไฟเครื่องของฉันใน OSX เป็นครั้งคราวฉันไม่ต้องการเปลี่ยนแปลงอะไรที่ฉันต้องเปลี่ยนบ่อย ๆ (ฉันอ่านมากเกี่ยวกับการเปลี่ยน UID - ฉันไม่เข้าใจสิ่งที่เกิดขึ้น แต่ฉันไม่ต้องการเปลี่ยน UID ของฉันไปมาขึ้นอยู่กับว่าฉันใช้ระบบปฏิบัติการใดในทำนองเดียวกันฉันไม่ต้องการเปลี่ยนการอนุญาตระบบไฟล์กลับไปกลับมา)

นอกจากนี้ฉันเห็นบางอย่างเกี่ยวกับตัวเลือก "ผู้เป็นเจ้าของ" แต่ดูเหมือนจะไม่ทำสิ่งที่ฉันต้องการ

ดังนั้นฉันเดาว่าฉันต้องการทำสิ่งนี้:

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac

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

หรือมันจะดีกว่าที่จะเปลี่ยนโพสต์ของฉัน? และถ้าเป็นเช่นนั้นได้อย่างไร


คุณช่วยลองดูคำตอบของฉันได้ไหม ฉันเชื่อว่าฉันตอบคำถามของคุณถูกต้องมากกว่าคำตอบที่ทำเครื่องหมายไว้
Catskul

@Catskul ไม่ฉันไม่สามารถ คำถามนี้อายุเกิน 2 ปีในเวลานั้นฉันขาย MacBook ของฉันและทำซ้ำปัญหานี้เพื่อวัตถุประสงค์ในการตรวจสอบคำตอบของคุณเป็นเรื่องยาก
weberc2

คำตอบ:


28

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

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

โหลดบนซีพียูและหน่วยความจำค่อนข้างมาก หากเป็นข้อกังวลฉันจะแนะนำโซลูชันของ @ weberc2 คำตอบที่ดีเป็นอย่างอื่น
frhd

bindfs เป็นขุยสำหรับฉัน ฉันใช้การตอบกลับสำหรับโพสต์นี้askubuntu.com/questions/315078/…แทน
krumpelstiltskin

คำตอบที่ดี (upvoted) แต่ต้องติดตั้ง bindfs ทำไมถึงไม่ดีนัก? นี่เป็นกรณีที่ผิดปกติของฉัน: เพื่อนให้ MacBook แก่ฉัน (ฉันไม่รู้ว่า Pro) กับข้อมูลสำรองจาก MacOS ที่ไม่ใช่การบูตหรือไม่ ฉันลองใช้รุ่นล่าสุดของ Ubuntu และไม่มีโชค (ตัวขับโนโวที่ผิดพลาด Nomodeet ไม่ได้ช่วย) จากนั้นฉันก็เริ่มกลับไปใช้เวอร์ชั่นอูบุนตูจนกว่าฉันจะพบบูทที่ 9.10 (ใช่) เซิร์ฟเวอร์ซื้อคืนไม่ออนไลน์อีกต่อไป bindfs ไม่สามารถติดตั้งได้ คำตอบที่ยอมรับจะช่วยแก้ปัญหานั้นได้
Hatoru Hansou

19

ฉันไม่สามารถหาวิธีเพิกเฉยสิทธิ์ได้ แต่ฉันเปลี่ยน UID ในบัญชี Ubuntu เพื่อให้ตรงกับบัญชี OSX ของฉัน:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser

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

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername

* เปลี่ยน "ชื่อผู้ใช้ของคุณ" เป็นชื่อผู้ใช้ที่ไม่ใช่ชั่วคราวและ 501 เป็น UID ของบัญชี Mac ของคุณ (บัญชี Mac เริ่มต้นที่ 501 แต่ผู้ใช้ที่ตามมาจะมี UID ต่างกัน)

ออกจากระบบ tempuser และกลับเข้าสู่บัญชีปกติของคุณ (สิ่งนี้สำคัญไม่เพียง แต่เปลี่ยนผู้ใช้ - สิ่งเลวร้ายเกิดขึ้น) เปิดหน้าต่างเทอร์มินัลแล้วพิมพ์:

sudo userdel -r tempuser

สำหรับรายละเอียดเพิ่มเติมเยี่ยมชมหน้านี้

คำเตือน

  • ผู้ใช้ linux เพียงคนเดียวเท่านั้นที่สามารถเข้าถึงได้ การตั้งค่านี้จะไม่อนุญาตให้ผู้ใช้ linux หลายรายสามารถเข้าถึงหลายไดเรกทอรีผู้ใช้บนไดรฟ์ HFS + เนื่องจาก Apple ล็อกไดเรกทอรีผู้ใช้ (และไดเรกทอรีสื่อเช่น Music) เป็น 700 ( rwx------)
  • เมื่อคุณเปลี่ยน UID แล้วผู้จัดการการเข้าสู่ระบบจะหยุดรายชื่อผู้ใช้นั้น คุณต้องเปลี่ยนUID_MINตัวเลือกในการ/etc/login.defจากไป1000500
  • ในที่สุดเนื่องจาก UID ของผู้ใช้มีการเปลี่ยนแปลงการเข้าถึงไดรฟ์จะกลายเป็นความสับสนของสิทธิ์ คุณจะต้องบันทึกตำแหน่งที่แน่นอนของโฟลเดอร์หลักของผู้ใช้เพื่อดู ความสมบูรณ์ของแท็บและการเรียกดูผ่านตัวจัดการไฟล์จะกลายเป็นปัญหาสำหรับโฟลเดอร์ที่อยู่นอกโฟลเดอร์โฮมดั้งเดิมของผู้ใช้ Apple โดยไม่ต้องsudoใช้

วิธีการแบบ usodod ใช้งานได้สำหรับฉัน เพียงตรวจสอบให้แน่ใจว่าได้ลบ / media / USERNAME หากคุณต้องการใช้ไดรฟ์ USB askubuntu.com/questions/583375//
krumpelstiltskin

สำหรับข้อแม้ 1 ของคุณ 700 เป็นค่าเริ่มต้นสำหรับไดเรกทอรีผู้ใช้ใน OS X แต่ไม่มีปัญหาในการเปลี่ยนแปลงหากไม่เหมาะกับคุณตัวอย่างเช่น 755
fkraiem

ในขณะที่ใช้ sudo เพื่อออกคำสั่งและเปิดใช้ nautilus ด้วย sudo อนุญาตให้เข้าถึงไดเรกทอรีใด ๆ ใน MacOS HD วิธี uid นั้นดีที่สุดเมื่อคุณต้องการมากกว่าเพียงแค่เข้าถึงไฟล์เช่นถ่ายโอนไปยังโฟลเดอร์ที่ใช้ร่วมกันในเครื่องอื่น (โดยใช้ ตัวอย่างเช่น samba) อินสแตนซ์ nautilus ที่ยกระดับไม่สามารถสำรวจเครือข่ายได้อินสแตนซ์ nautilus ปกติสามารถทำได้ แต่ไม่อนุญาตให้คุณคัดลอกและวางจาก MacOS HD ให้ tempuser ด้วย uid 501 แก้ปัญหาให้ฉันทำให้ฉันสำรองข้อมูลจาก MacOS ที่ไม่บู๊ตไปยังโฟลเดอร์แชร์
Hatoru Hansou

สำหรับ 16.10 ยกเว้น UID_MIN ยังต้องเพิ่มGID_MIN=500การ/etc/login.def
วาด

5

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


ฉันพยายามทำสิ่งนั้นแล้ว แต่ฉันไม่รู้ว่าควรใช้ UID ใด ฉันได้อ่านมันเหมือนกับ 501 สำหรับ OSX แต่บัญชีไม่ใช่ผู้ใช้ OSX ดั้งเดิม ฉันจะหาข้อมูลนี้ได้อย่างไร?
weberc2

@ weberc2: ls -l /media/YourHFSdisk/จะแสดง uid และ gid ของไฟล์ / โฟลเดอร์ปัจจุบัน ดิสก์ HFS + ที่ฉันพบนั้นส่วนใหญ่จะเป็นของ uid 99 และ gid 99 อย่างไรก็ตามฉันลองใช้การตั้งค่า uid / gid / umask หลายชุดในคำสั่ง mount และดูเหมือนจะไม่เปลี่ยนแปลงอะไรเลย
mivk

สิ่งนี้ไม่ได้ผลสำหรับฉัน จากเอกสารประกอบ: "uid / gid \ n ระบุผู้ใช้ / กลุ่มที่เป็นเจ้าของไฟล์ทั้งหมดบนระบบไฟล์ที่มีโครงสร้างสิทธิ์ที่ไม่ได้กำหนดค่าเริ่มต้น" แต่น่าเสียดายที่ไฟล์ทั้งหมดที่อยู่ในระบบแฟ้มของฉันจะยังคงเป็นเจ้าของโดย 501 (กล่าวคือพวกเขาได้เริ่มต้นโครงสร้างสิทธิ์ ()?)
โคลิน

2

ฉันรู้ว่านี่เก่า แต่มีวิธีอื่นที่ดูเหมือนว่าจะทำงานได้ดีสำหรับฉัน เนื่องจากไฟล์ทั้งหมดเป็นของผู้ใช้ "root" ทั้งหมดที่ฉันทำก็คือปัญหาsu rootจากเทอร์มินัลและls -lah /media/Macintosh HDจากตรงนั้น โดยการใช้รูทฉันสามารถข้ามข้อผิดพลาดที่ได้รับอนุญาตถูกปฏิเสธ


เรียบง่ายและคดเคี้ยว
SYK

1

ฉันสามารถเข้าถึงไฟล์จากฮาร์ดไดรฟ์ Macbook รุ่นเก่าโดยใช้ตัวจัดการไฟล์ด้วยสิทธิ์ระดับสูง

gksudo thunar

จากนั้นคัดลอกไฟล์ตามต้องการ


0

นี่เป็นตัวเลือกทั่วไปที่ฉันใช้งานอยู่อย่างสมบูรณ์แบบ

mkdir /media/test
mkdir /media/diskhfs
mount /dev/sdb1 /media/test -o rw
bindfs -o perms=775,mirror=userorid --map=99/userorid:@99/@uderorid /media/test /media/diskhfs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.