9 partitioning macosx hfs+ 12.04
在我的 Mac 上,我使用非日志式 HFS 分区在 OSX 10.8 和 Ubuntu 12.04 之间共享文件。
起初这是一个不错的想法,因为 Time Machine 会自动备份 OSX 中的卷,但我很快注意到 OSX 和 Ubuntu 以一种让我感到混乱的方式混淆了权限。
因此,为了完全查看和更改文件,我一直使用chmod应用权限,这将允许我完全使用文档。但我不明白为什么我必须一遍又一遍地应用更改。
我猜 777 会工作,但我认为这不是一件聪明的事情。但是只要“其他人”没有获得完全访问权限(第三个七),我就会在 ubuntu 中的文件上看到一个锁定图标。
Rod*_*ith 13
用户名无关紧要。HFS+ 和 Linux 原生文件系统中的权限都是根据用户ID (UID)存储的,UID 是与用户名关联的数字。在 Ubuntu 中,与大多数现代 Linux 发行版一样,默认情况下第一个用户的 UID 为 1000。在 OS X 中,默认情况下第一个用户的 UID 为 501。因此,当共享对 UID 值进行编码的媒体时,UID 值可能不匹配。
解决此问题的一种方法是设置宽松的权限(模式值,如rwxr-xr-x,或八进制中的 755)。请注意,权限八进制代码与 UID 值不同。在任一操作系统中,您都可以使用umask命令设置对文件使用的默认权限,该命令指定要从文件权限中删除的位值。例如,umask 022删除组的写权限和其他权限,导致 755 (rwxr-xr-x) 对新文件的权限(如果删除了执行权限位,则为 644,这是文件的常见做法)。不过,这主要是一个命令行工具;如果您主要是 GUI 用户,则需要找到另一个工具来完成这项工作,这可能与您的桌面环境的默认设置有关。这可能是晦涩难懂的,而且记录不全。此外,以这种方式设置松散的权限可能会带来安全隐患,尤其是当您的系统是多用户系统时。
更好的方法是在 Linux 和 OS X 之间同步您的帐户 UID。您可以使用以下usermod命令轻松更改 Linux 中的 UID 值,如下所示:
usermod -u 501 dale
Run Code Online (Sandbox Code Playgroud)
此命令将 UID 设置dale为 501。不过,有一些重要的警告:
usermod必须用作root. 您可以通过 执行它sudo,但从您正在修改的帐户中执行此操作在极端情况下是不可取的。因此,您需要提供root密码并root直接登录或sudo从第二个用户帐户使用。usermod命令不会更改相关用户拥有的任何文件的所有权。要调整这些文件的所有权,您需要找到它们,然后使用chown. 大多数文件将位于用户的主目录中,因此chown -R dale: /home/dale,root在更改dale的 UID后键入的将更改大多数dale的文件以使用新的 UID 号。但是,用户的某些文件可能位于其他地方。键入find / -uid 1000将找到所有使用旧 UID 的文件(假设它是 1000)。请注意,此find命令可能需要几分钟才能完成。要加快速度,请卸载任何您确定不会发现任何问题的文件系统,例如 FAT 或 NTFS 卷。/etc/fstab条目挂载卷,则可能需要调整它指定的 UID 值。/etc/login.defs. 如果您未能更改UID_MIN此文件中的值,您可能会发现您的帐户似乎会从 GUI 登录屏幕中“消失”,也可能会从某些其他系统中“消失”。因此,您应该编辑该文件。理论上,您可以以类似的方式更改 OS X 帐户的 UID 以实现相同的目标。不过,我对 OS X 帐户维护工具不太熟悉,因此我无法提供明确的说明。调整 OS X 值的优势在于您不必UID_MIN在 Linux中进行调整。
如果您的计算机上有多个帐户,您应该对它们进行全部调整,以使它们在您的操作系统安装中保持同步。
还有一点:组 ID (GID) 值的存储方式类似。IIRC,Ubuntu 为每个帐户分配与其 UID 值相同的 GID 值。我不记得默认情况下 OS X 做了什么。您可能希望以类似于 UID 更改的方式调整两个操作系统的 GID 值,但这可能不如调整 UID 值重要。
编辑:如果您想在 macOS/OS X 而不是在 Ubuntu 中更改您的 UID(和 GID,如果需要),您可以这样做。由于 macOS 中的此修改超出了本站点的范围,因此我将链接到几个页面,这些页面提供了在 macOS 中执行此操作的过程: