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

web*_*rc2 30 filesystem permissions mount macosx hfs+

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

另外,我看到了一些关于“noowner”选项的信息,但这似乎并没有达到我想要的效果。

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

sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac
Run Code Online (Sandbox Code Playgroud)

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

还是更改我的 UID 会更好?如果是这样,如何?

Cat*_*kul 34

bindfs是答案。它将采用一个已经安装的文件系统,并使用您想要的任何 uid 提供它的视图:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Run Code Online (Sandbox Code Playgroud)


web*_*rc2 21

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

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser
sudo passwd tempuser
Run Code Online (Sandbox Code Playgroud)

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

sudo usermod --uid 501 yourusername
sudo chown -R 501:yourusername /home/yourusername
Run Code Online (Sandbox Code Playgroud)

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

注销 tempuser 并重新登录到您的普通帐户(这很重要;不要只是切换用户——坏事会发生)。打开终端窗口并输入:

sudo userdel -r tempuser
Run Code Online (Sandbox Code Playgroud)

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

注意事项

  • 只有一名linux 用户可以访问。此设置将不允许多个 linux 用户访问 HFS+ 驱动器上的多个用户目录。这是因为 Apple 将用户目录(以及 Music 等媒体目录)锁定为 700 ( rwx------)。
  • 更改 UID 后,登录管理器将停止列出该用户。您必须将UID_MIN选项/etc/login.def从更改1000500
  • 最后因为用户UID变了,访问驱动就变成了权限混乱。您必须记下用户主文件夹的确切位置才能查看它。对于原始 Apple 用户主文件夹之外的文件夹,如果没有sudo.


归档时间:

查看次数:

66104 次

最近记录:

8 年,4 月 前