问题描述
我在我的 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,我能够绕过权限被拒绝错误。