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


25

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

另外,我看到了有关“无主”选项的信息,但这似乎并没有实现我想要的功能。

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

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

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

还是更改我的UID会更好?如果是这样,怎么办?


你能看看我的答案吗?我相信我已比标记答案更正确地回答了您的问题。
Catskul 2014年

@Catskul不,我不能。这个问题已有2年之久了-那时,我已经售出了MacBook,为了验证您的答案是非常困难的,因此复制了这个问题。
weberc2 2014年

Answers:


28

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

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

但是,CPU和内存的负担相当大。如果这是一个问题,我建议使用@ weberc2的解决方案。否则,很好的答案。
2014年

bindfs对我来说是片状的。我用这个帖子的回复askubuntu.com/questions/315078/…相反
krumpelstiltskin

好的答案(已批准),但需要安装bindfs。为什么那不是很好?好吧,这是我不寻常的情况:朋友给我旧的MacBook(我不知道Pro)是从非启动MacOS备份数据。我尝试了最新的Ubuntu版本,但没有运气(nouveau驱动程序崩溃,nomodeset没有帮助)。然后,我开始使用Ubuntu版本,直到找到可以启动的9.10(是的)回购服务器不再在线。无法安装bindfs。公认的答案解决了这个问题。
Hatoru Hansou

19

我无法弄清楚如何忽略权限,但最终更改了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

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

注销临时用户,然后重新登录到您的普通帐户(这很重要;不要仅仅切换用户,否则会发生坏事)。打开一个终端窗口并输入:

sudo userdel -r tempuser

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

注意事项

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

usermod方法对我有用。如果要使用USB驱动器,只需确保删除/ media / USERNAME。askubuntu.com/questions/583375/...
krumpelstiltskin

为了您的警告1,700确实是在OS X的用户目录的默认,但没有问题,改变它,如果它不适合你,例如为755
fkraiem

使用sudo发出命令并使用sudo启动nautilus允许访问MacOS HD中的任何目录时,当您需要的不仅仅是简单地访问文件(例如将它们传输到另一台计算机上的共享文件夹(使用例如samba)。提升后的Nautilus实例无法浏览网络,而普通的Nautilus实例可以浏览网络,但是它不允许您从MacOS HD复制和粘贴。给临时用户提供uid 501为我解决的问题,使我可以将数据从非引导MacOS备份到共享文件夹。
Hatoru Hansou

对于16.10,除UID_MIN,还需要添加GID_MIN=500/etc/login.def

5

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


我一直在尝试这样做,但是我不知道应该使用什么UID。我读过OSX类似于501,但该帐户不是原始OSX用户。我如何找到这些信息?
weberc2

@ weberc2:ls -l /media/YourHFSdisk/将显示当前文件/文件夹的uid和gid。我遇到的HFS +磁盘似乎主要由uid 99和gid 99拥有。但是,我在mount命令中尝试了uid / gid / umask设置的各种组合,并且似乎没有任何改变。
mivk 2012年

这对我不起作用。从文档中:“ uid / gid \ n指定拥有文件系统上所有具有未初始化权限结构的文件的用户/组。” 不幸的是,我文件系统上的所有文件仍然归501所有(即它们已经初始化了权限结构(?))
Colin

2

我知道这很老了,但是还有另一种解决方法对我来说似乎很好。由于所有文件均由“ root”用户拥有,所以我要做的就是su root从终端和ls -lah /media/Macintosh HD那里发布。通过使用root,我可以绕过权限拒绝错误。


简单且曲折
SYK 2015年

1

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

gksudo thunar

然后根据需要复制文件。


0

这是我正在使用的常规选项,效果很好

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.