问题标签 [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.
macos - OSX:如何在文件夹上设置 ACL
如何将 ACL 设置为类似于 Safari.app 的文件夹?
我试过使用:
但我仍然可以删除文件夹 xyz。
任何帮助都将是可观的。
c - 如何获取文件的扩展属性(UNIX/C)?
当我ls -l
在命令行中输入时,有时会在文件权限旁边出现一个@
或+
符号(顺便说一句,我在 OS X 上),如下所示:
我知道如何使用该stat
结构获取权限位,但我认为这些扩展权限值不存在。有人可以指出我如何通过 C 或 POSIX API 获取这些值的正确方向吗?
编辑:
我尝试了以下操作:
并得到输出:
仍在尝试了解如何将其转换为@
or +
?
linux - linux fsync 会同步文件的 xattr 吗?
从 man fsync(2) 开始,它将同步文件的元数据,我认为这是 stat 中的列表。文件的 xattr 是怎么回事?它属于元数据吗?我们做了一个测试,写一个文件,设置6个xattr,然后做fsync,然后改变1个xattr值,再做一次fsync(使用0.2s)。我们认为第二个 fsync 应该很快,但事实并非如此(使用 0.16s)。
linux - 设置安全属性时出现 xattr 命令错误
我正在运行以下命令来设置扩展属性,但它给出了Could not set extended attribute. Operation not supported
错误。
在检查 xattr 的来源时,它正在调用setxattr()
用于设置属性的函数,并且该函数返回错误。在检查setxattr()
API 时,内核安全模块(Security Enhanced Linux)似乎使用了安全属性。选中make menuconfig
后,“安全选项”下有很多选项。我已启用“安全选项”下的所有选项,但仍然面临同样的问题。
我在 IMX6 Sabersd 板上使用 3.10.17 内核。你能指导我在“安全选项”下启用哪些选项,然后需要在用户空间中进行任何更改以修复“无法设置扩展属性。不支持操作”错误。
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)的情况下。
非常感谢您阅读的任何帮助/资源。
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”命令并从我们的应用程序中删除扩展属性?
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 获取该值?
macos - 在 OSX 上更改文件的“添加日期”属性
我一直在使用终端更改文件的“添加日期”属性,但没有成功。
我正在做的是:
显示文件的属性:
mdls 文件名
显示“添加日期”属性:
xattr -p "kMDItemDateAdded" 文件名
更改:
sudo xattr -w "kMDItemDateAdded" "201111111111.11" 文件名
第三条指令不起作用!而触摸具有相同日期值的文件确实会更改修改日期。
我正在运行优胜美地。来自社区的任何想法?
ios - Swift 3 中的数据、UnsafeMutablePointer 和扩展属性
在 swift 2 中,我有一个用于处理扩展属性的 NSURL 扩展,其中包括:
现在我正在尝试将其转换为 Swift 3,但 Xcode 一直在抱怨。
我把前两个函数改成了这个,但我不确定我做得对:
我必须在第一个函数中投射Data
到那里吗?NSData
有没有更好的方法来解决这一切?
最后一个函数被 Xcode 转换为:
但我明白了
无法使用类型为“(UnsafeMutableRawPointer!)”的参数列表调用类型“UnsafeMutablePointer”的初始化程序
而且我不知道该怎么办。Xcode 的转换也坚持NSString
. 我不能在那里使用String
吗?
如果还不是很明显,我不知道我在做什么,哈哈。我的原始代码基于此,但我无法理解所有这些malloc
和length
东西是如何bytes
工作的。我尝试阅读文档Data
等UnsafeMutablePointer
,但并没有太大帮助。
如果有人可以帮助我转换此代码,我将不胜感激,但即使只是为我指出正确的方向以理解所有这些,也已经是一个巨大的帮助。我不知道还能去哪里看,所有这些东西对我来说似乎真的很神秘。我最近发现的少数几个来源假设我知道很多我不知道的东西,我什至不知道要寻找什么。
谢谢!
macos - 如何在 Mac OS X 中为文件添加“扩展属性”?
如何添加扩展属性?
我正在使用带有本地文件链接和打开文件的 excel,但我需要为每个文件添加扩展属性。所以我没有得到提示Grand File Access
。
我的文件看起来像 File-01.html...File-99.html。
我需要将 xattr 添加com.apple.quarantine: 0002;580fbaf1;Microsoft Excel;
到每个 *.html 文件中。我怎样才能做到这一点?