如何挂载HFS +驱动器并忽略权限

我在MacBook上安装了Ubuntu和Windows,Ubuntu是我的主要操作系统; 但是,我的所有媒体都停留在我的OSX分区上。 我希望能够从Ubuntu访问它(至少我的OSX用户的主文件夹),而不必以root身份启动媒体播放器(或其他任何东西)。 另外,因为我偶尔想在OSX中启动我的机器,所以我不想改变任何需要经常更换的东西(我读了很多关于更改UID的内容 – 我不完全理解这需要什么,但我不想根据我正在使用的操作系统来回更改我的UID。同样,我不想来回更改文件系统权限)。

另外,我看到了一些关于“noowner”选项的内容,但这似乎并不像我想要的那样。

所以我想我希望能够做到这样的事情:

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

然后能够访问我的所有媒体(至少在我的OSX用户的主文件夹中的所有内容),而不是以root身份登录。 (为清楚起见:上面的命令行条目不能完成我想要它做的事情,但我希望能够做类似的事情)。

或者更改我的UID会更好吗? 如果是这样,怎么样?

bindfs就是答案。 这将需要一个已安装的文件系统,并提供它的视图与您想要的任何uid:

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

我无法弄清楚如何忽略权限,但我最终更改了我的Ubuntu帐户上的UID以匹配我的OSX帐户:

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

输入新密码。 注销,使用用户名“tempuser”和您之前选择的密码以“other”身份登录。 打开终端并输入:

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

*将“yourusername”更改为非临时用户名,将501更改为Mac帐户的UID(第一个Mac帐户从501开始,但后续用户将使用不同的UID)。

退出tempuser并重新登录到您的普通帐户(这很重要;不要只是切换用户 – 会发生不好的事情)。 打开终端窗口并键入:

 sudo userdel -r tempuser 

有关更多详细信息,请访问此页面 。

注意事项

  • 只有一个 Linux用户可以访问。 此设置不允许多个Linux用户访问HFS +驱动器上的多个用户目录。 这是因为Apple将用户目录(以及音乐等媒体目录)锁定为700( rwx------ )。
  • 更改UID后,登录管理器将停止列出该用户。 您必须将/etc/login.defUID_MIN选项从1000更改为500
  • 最后因为用户UID已更改,访问驱动器变得权限混乱。 您必须记下用户主文件夹的确切位置才能查看。 对于没有sudo的原始Apple用户的主文件夹之外的文件夹,选项卡完成和浏览文件管理器将成为问题。

HFS +文件系统的Linux内核实现文档列出了一个uid挂载选项,允许您“拥有”所有文件(也可能是其他一些可能有用的选项)。

我知道这是旧的,但还有另一种方法,似乎对我来说效果很好。 由于所有文件都归“root”用户所有,我所做的只是从终端发出su root ,然后从那里发出ls -lah /media/Macintosh HD 。 通过使用root,我能够绕过权限被拒绝错误。

这是我使用的一般选项

 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 

通过使用提升的权限运行文件管理器,我能够从旧的Macbook硬盘驱动器访问文件。

 gksudo thunar 

然后根据需要复制文件。