在 OSX/Linux 之间共享的 HFS+ 主分区上的锁定文件

Haz*_*Dot 4 linux hfs file-permissions macos

我在 MacBook pro 上双启动到 Arch Linux 和 OS X 10.6。我在两个操作系统之间同步了我的 UID,并创建了一个 HFS 分区(没有日志)用作共享的 home/Users 分区。在大多数情况下,它的工作原理与我预期的一样,但有时当我启动到 OS X 时,某些文件被“锁定”(当我获得有关特定文件的信息时,“常规”下的“锁定”框会被选中窗格。我可以通过手动取消选中该框来解决该问题)和/或当我尝试删除或修改文件时出现“不允许操作”。在这两种情况下,我都没有在 ls -l 显示的权限位上看到任何异常,除了通常会出现粘滞位的位置的尾随 '@' 字符:

-rw-r--r--@  1 myuser  mygroup   296 Mar 29 11:44 myfile
Run Code Online (Sandbox Code Playgroud)

此“@”字符出现在所有普通文件中,因此似乎与锁定/操作无权限情况无关。

在 Linux 方面,我从来没有权限问题。据我有限的 ACL 知识和经验,我没有在任何有问题的文件中找到任何 ACL。

对于它的价值,我使用 emacs(OSX 中的 Aquamacs)进行大部分文件编辑,是否有可能设置奇怪的权限位?

  1. OS X 使用的“锁定”设置是什么,它是否具有等效的权限(因此至少我可以从终端递归解锁主目录中的所有文件)
  2. 为什么在启动到 OS X 时某些文件而不是其他文件会被“锁定”
  3. “@”字符的含义是什么?

小智 5

我也遇到了同样的问题。

我从这里和其他地方阅读的信息中了解到,这是 hfsplus 模块中的一个 linux 内核错误。它将随机用户标志添加到文件中。有两个标志可以防止编辑/删除文件:uchg 和 uappnd。这是两个坏人。它们可以应用于文件甚至父目录。

标志显示为:

$ ls -laO /Volumes/my-volume

可以通过以下方式递归删除标志:

$ man chflags

$ chflags -R nouchg,nouappnd,noopaque,dump /Volumes/my-volume

注意:我还删除了 opaque 和 nodump 标志。我不需要旗帜。