问题标签 [xattr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5861 浏览

macos - OSX:如何在文件夹上设置 ACL

如何将 ACL 设置为类似于 Safari.app 的文件夹?

我试过使用:

但我仍然可以删除文件夹 xyz。

任何帮助都将是可观的。

0 投票
2 回答
8616 浏览

c - 如何获取文件的扩展属性(UNIX/C)?

当我ls -l在命令行中输入时,有时会在文件权限旁边出现一个@+符号(顺便说一句,我在 OS X 上),如下所示:

我知道如何使用该stat结构获取权限位,但我认为这些扩展权限值不存在。有人可以指出我如何通过 C 或 POSIX API 获取这些值的正确方向吗?

编辑

我尝试了以下操作:

并得到输出:

仍在尝试了解如何将其转换为@or +

0 投票
1 回答
105 浏览

linux - linux fsync 会同步文件的 xattr 吗?

从 man fsync(2) 开始,它将同步文件的元数据,我认为这是 stat 中的列表。文件的 xattr 是怎么回事?它属于元数据吗?我们做了一个测试,写一个文件,设置6个xattr,然后做fsync,然后改变1个xattr值,再做一次fsync(使用0.2s)。我们认为第二个 fsync 应该很快,但事实并非如此(使用 0.16s)。

0 投票
1 回答
658 浏览

linux - 设置安全属性时出现 xattr 命令错误

我正在运行以下命令来设置扩展属性,但它给出了Could not set extended attribute. Operation not supported错误。

在检查 xattr 的来源时,它正在调用setxattr()用于设置属性的函数,并且该函数返回错误。在检查setxattr()API 时,内核安全模块(Security Enhanced Linux)似乎使用了安全属性。选中make menuconfig后,“安全选项”下有很多选项。我已启用“安全选项”下的所有选项,但仍然面临同样的问题。

我在 IMX6 Sabersd 板上使用 3.10.17 内核。你能指导我在“安全选项”下启用哪些选项,然后需要在用户空间中进行任何更改以修复“无法设置扩展属性。不支持操作”错误。

0 投票
1 回答
86 浏览

permissions - 文件系统(和)权限的实现

我试图了解文件系统和内核的相关方式,以及它们如何协同工作,特别是关于权限。

(我知道,事实上,文件系统在内核空间中运行,但在这种情况下,我将它们视为两个独立的实体。)

当 Bob (UID=1001, GID=1001, groups="humans, minor") 尝试读取 "file.txt" 时,比如说, "rwx r-- --x" 和 "owner = Alice" 和 " group owner = minor" -- 内核和文件系统中的哪一个允许访问?

文件系统是否具有将 Bob 的组的整个列表、Bob 的 UID 和内核发送的其他内容作为参数的函数(这将允许文件系统确定 Bob 是否可以读取目标文件)?

此外,如果这是它的工作方式——内核如何知道文件系统需要扩展/特殊属性的数据?例如,在 Synology 扩展属性(ext4/btrfs)的情况下。

非常感谢您阅读的任何帮助/资源。

0 投票
0 回答
608 浏览

macos - “xattr”命令在沙盒应用程序中不起作用

我们在 IDE 上工作了很长时间,它具有 com.apple.security.app-sandbox 模式。用户可以从 Internet 下载必要的 SDK(开箱即用)并在我们的 IDE 中使用进行开发。在使用这些 SDK 文件之前,我们多次注意到文件具有隔离属性 (com.apple.quarantine)。由于 El Capitan 的限制政策更严格,此类文件被禁止在沙盒应用程序中使用。为了克服这样的障碍,我们决定在 IDE 中使用这些 SDK 文件之前运行一个 bash 脚本:

为了顺利运行,我们在我们的应用程序中添加了以下权利:

从已安装的应用程序中,这在 El Cap 中从未起作用。最后我们发现这种特殊的权利使用只能使 bash 脚本正常工作:

不幸的是,Apple 审查团队对上述权利的使用权限非常严格。

是否有任何其他已知方式或权利使用可以使我们运行“xattr”命令并从我们的应用程序中删除扩展属性?

0 投票
1 回答
140 浏览

ios - 使用 OSX 系统调用计算 NSURLFileAllocatedSizeKey 返回的值

为了使问题有意义,让我指导您完成整个测试用例,所以请多多包涵。

让我们创建一个文件。

回声 0 > ~/SAMPLE

这会生成一个大小为 2 字节的简单文件(默认情况下,echo 会附加新行,这不会影响示例)。

stat -f "%b %Z" ~/SAMPLE

输出:

8 2

正如预期的那样,这个文件分配了 8 个块,大小为 2 个字节(在 Finder 中获取信息告诉我们,它是 2 个字节长,磁盘上 4k,即 8 个块 * 512 个字节/块),所以一切都很好。

现在让我们添加一个属性,特别是资源分支:

xattr -w com.apple.ResourceFork 000000 ~/SAMPLE

让我们再次调用 stat:

stat -f "%b %Z" ~/SAMPLE

输出:

16 2

添加资源分叉属性后,文件系统为该文件分配了 16 个块。

ls -l@ ~/SAMPLE

输出:

com.apple.ResourceFork 6

总结一下:我们在资源分支中添加了 6 个字节,这个文件现在分配了 16 个块(在添加资源分支之前只有 8 个),内容只有 2 个字节,资源分支有 6 个字节。

如果我们通过 NSURL API 运行这个文件,我们会得到:

NSURL *url = [NSURL fileURLWithPath:@"~/SAMPLE"];

[url getResourceValue:&size forKey: NSURLFileSizeKey错误:nil]; // 输出:2

[url getResourceValue:&size forKey: NSURLFileAllocatedSizeKey错误:nil]; // 输出:4096

[url getResourceValue:&size forKey: NSURLTotalFileAllocatedSizeKey错误:nil]; // 输出:8192

所以我的问题是,如果只使用系统调用(bash 或系统 API),我们将如何获得 4096,即NSURLFileAllocatedSizeKey键的结果?

NSURLFileSizeKey 很简单——我们可以只使用 ls -l 例如,也可以用于 NSURLTotalFileAllocatedSizeKey——我们可以使用 stat (16) 中的块数并乘以 512,但是我们如何获得NSURLFileAllocatedSizeKey的值,即 4096 in这个案例?

据我了解,如果我们要删除资源分支属性,它将是NSURLFileAllocatedSizeKey键返回的值,但是我们如何使用系统 API 或 bash 获取该值?

0 投票
0 回答
2969 浏览

macos - 在 OSX 上更改文件的“添加日期”属性

我一直在使用终端更改文件的“添加日期”属性,但没有成功。

我正在做的是:

  1. 显示文件的属性:

    mdls 文件名

  2. 显示“添加日期”属性:

    xattr -p "kMDItemDateAdded" 文件名

  3. 更改:

    sudo xattr -w "kMDItemDateAdded" "201111111111.11" 文件名

第三条指令不起作用!而触摸具有相同日期值的文件确实会更改修改日期。

我正在运行优胜美地。来自社区的任何想法?

0 投票
0 回答
74 浏览

ios - Swift 3 中的数据、UnsafeMutablePointer 和扩展属性

在 swift 2 中,我有一个用于处理扩展属性的 NSURL 扩展,其中包括:

现在我正在尝试将其转换为 Swift 3,但 Xcode 一直在抱怨。

我把前两个函数改成了这个,但我不确定我做得对:

我必须在第一个函数中投射Data到那里吗?NSData有没有更好的方法来解决这一切?

最后一个函数被 Xcode 转换为:

但我明白了

无法使用类型为“(UnsafeMutableRawPointer!)”的参数列表调用类型“UnsafeMutablePointer”的初始化程序

而且我不知道该怎么办。Xcode 的转换也坚持NSString. 我不能在那里使用String吗?

如果还不是很明显,我不知道我在做什么,哈哈。我的原始代码基于,但我无法理解所有这些malloclength东西是如何bytes工作的。我尝试阅读文档DataUnsafeMutablePointer,但并没有太大帮助。

如果有人可以帮助我转换此代码,我将不胜感激,但即使只是为我指出正确的方向以理解所有这些,也已经是一个巨大的帮助。我不知道还能去哪里看,所有这些东西对我来说似乎真的很神秘。我最近发现的少数几个来源假设我知道很多我不知道的东西,我什至不知道要寻找什么。

谢谢!

0 投票
1 回答
2531 浏览

macos - 如何在 Mac OS X 中为文件添加“扩展属性”?

如何添加扩展属性?

我正在使用带有本地文件链接和打开文件的 excel,但我需要为每个文件添加扩展属性。所以我没有得到提示Grand File Access

我的文件看起来像 File-01.html...File-99.html。

我需要将 xattr 添加com.apple.quarantine: 0002;580fbaf1;Microsoft Excel;到每个 *.html 文件中。我怎样才能做到这一点?