如何挂载 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

有关详细信息,请访问 this page 。

Caveats

  • 只有一个 linux 用户可以访问。此设置将不允许多个 linux 用户访问 HFS+ 驱动器上的多个用户目录。这是因为 Apple 将用户目录(以及音乐等媒体目录)锁定为 700 ( rwx------ )。

  • 更改 UID 后,登录管理器将停止列出该用户。您必须将 /etc/login.def 中的 UID_MIN 选项从 1000 更改为 500

  • 最后,由于用户 UID 发生了变化,对驱动器的访问变成了权限混乱。您必须记下用户主文件夹的确切位置才能查看它。对于没有 sudo 的原始 Apple 用户主文件夹之外的文件夹,选项卡补全和浏览文件管理器将成为问题。

第三种回答

documentation for the linux kernel implementation of the HFS+ filesystem 列出了一个 uid 挂载选项,允许您 “own” 所有文件(也许还有一些其他可能有用的选项)。

第四种回答

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

参考资料

  • How to mount HFS+ drive and ignore permissions

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

扫一扫手机访问