我在 MacBook 上安装了 Ubuntu 和 Windows,Ubuntu 是我的主要操作系统;但是,我的所有媒体都保留在我的 OSX 分区上。我希望能够从 Ubuntu 访问它(至少是我的 OSX 用户的主文件夹),而无需以 root 身份启动媒体播放器(或其他任何东西)。此外,因为我偶尔想在 OSX 中启动我的机器,所以我不想更改任何需要经常改回的内容(我阅读了很多关于更改 UID 的文章——我不完全明白这意味着什么,但我不想根据我使用的操作系统来回更改我的 UID。同样,我也不想来回更改文件系统权限)。
另外,我看到了一些关于“无所有者”选项的内容,但它似乎并没有实现我想要的效果。
所以我想我可以做这样的事情:
sudo mount -t hfsplus -o noowner /dev/sda2/ /media/Mac
然后能够访问我的所有媒体(至少是我的 OSX 用户主文件夹中的所有内容),而无需以 root 身份登录。(为了清楚起见:上面的命令行条目没有执行我想要的操作,但我希望能够做类似的事情)。
或者我最好更改我的 UID?如果是的话,该怎么做?
答案1
bindfs
就是答案。它将获取已安装的文件系统,并使用您想要的 uid 提供其视图:
sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
答案2
我无法弄清楚如何忽略权限,但最终我将 Ubuntu 帐户上的 UID 更改为与我的 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
*将“yourusername”更改为您的非临时用户名,并将 501 更改为您的 Mac 帐户的 UID(第一个 Mac 帐户从 501 开始,但后续用户将具有不同的 UID)。
退出 tempuser 并重新登录您的正常帐户(这很重要;不要只是切换用户——可能会发生不好的事情)。打开终端窗口并输入:
sudo userdel -r tempuser
欲了解更多详情,请访问这一页。
注意事项
- 仅有的一Linux 用户可以获得访问权限。此设置不允许多个 Linux 用户访问 HFS+ 驱动器上的多个用户目录。这是因为 Apple 将用户目录(以及 Music 等媒体目录)锁定为 700(
rwx------
)。 - 一旦你更改了 UID,登录管理器将不再列出该用户。你必须将
UID_MIN
中的选项/etc/login.def
从更改1000
为500
。 - 最后,由于用户 UID 已更改,访问驱动器会造成权限混乱。您必须记下用户主文件夹的确切位置才能查看它。如果没有 ,则 Tab 补全和通过文件管理器浏览原始 Apple 用户主文件夹之外的文件夹将变得困难
sudo
。
答案3
这Linux 内核实现 HFS+ 文件系统的文档列出了uid
允许您“拥有”所有文件的挂载选项(也许还有一些其他可能有用的选项)。
答案4
这是我使用的常规选项,效果很好。
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