问题标签 [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 投票
0 回答
621 浏览

macos - xattr -w 将元数据写入文件 - 语法问题

测试在 Mac OSX 中将元数据写入文件的能力。任何帮助将不胜感激,因为我对 unix 语法知之甚少。

在终端。为什么这行得通;

但事实并非如此;

显然,有时我需要将元数据标记作为包含空格的字符串写入。我原以为转义空格会起作用。

0 投票
1 回答
3426 浏览

tar - Tar 不保留“受信任”命名空间的扩展属性

解释

我正在使用 tar 创建包含文件夹的存档,其中一些文件具有扩展属性。

包括这些:

  • trusted.size=5
  • trusted.test

我以这种方式创建并提取了存档:

问题

提取文件后,我尝试查看属性:

但是属性总是缺失。我如何保留这些属性?

0 投票
1 回答
331 浏览

macos - com.apple.TextEncoding 有 API 吗?

当您使用这样的方法保存 NSString(或 Swift.String)时,它会写入 xattr“com.apple.TextEncoding”。当您使用相应的方法之一重新加载它时,它会检查此 xattr 并将其用作默认编码。

是否有任何 API 可以根据此 xattr 确定文件的编码,而无需加载文件的内容?

我知道解析“IANA 名称,分号,CFString​Encoding uint32,(可选的其他东西)”并不难,但如果有内置方法,我宁愿避免它。

0 投票
0 回答
46 浏览

c - 如何在不打开文件的情况下从文件中获取扩展文件属性

我和我的搭档在这件事上已经有一段时间了。我们需要查看文件扩展文件属性,以检查我们在其中放置的标志。为此,我们认为我们需要文件的 dentry,但我们无法弄清楚如何获得它。我们有一个有效的 Inode 和文件路径。有任何想法吗?

0 投票
2 回答
1057 浏览

xcode - 递归 xattr 严重失败

我一直在尝试找出一种方法来递归删除xattr某些文件的所有内容,但是,以前的方法似乎都不再起作用了;可能还有一个新引入的错误?

..现在是大结局!

哦,看它xattr在泥土中发现了一个……知道如何,什么或谁xattr如此严重地破坏了该工具会很有趣。我只需要递归地删除扩展属性,真的!

0 投票
0 回答
482 浏览

macos - 我应该设置什么 com.apple.quarantine 值来将文件标记为潜在恶意?

我正在制作一个桌面应用程序,它将打开文件(LHTML 格式)并且可以将文件(任何格式)保存到用户的计算机上。换句话说,用户可能:

  1. something.lhtml从他们收到的电子邮件中下载
  2. 打开something.lhtml
  3. 被此应用程序提示保存stuff.ppt(其中的内容由stuff.ppt决定something.lhtml
  4. 双击stuff.ppt

当用户打开stuff.ppt时,我希望他们在打开文件之前得到提示,就好像他们是stuff.ppt从电子邮件中下载的一样。something.lhtml所以...如果我将的当前 com.apple.quarantine扩展属性 复制到stuff.ppt,是否保证在stuff.ppt打开时强制提示?

如果要保存的文件不是.ppt其中之一,那么复制该com.apple.quarantine值是否仍然足够?

  • .exe
  • .pdf
  • .dmg
  • .app

这个问题还有意义吗?:)

0 投票
1 回答
629 浏览

macos - 如何对 macOS 二进制文件进行代码签名以停止防火墙权限请求?

领结应用程序在这里:http ://bowtieapp.com 。二进制文件但不是源代码可用。

它的问题macOS Sierra 10.12.5 Beta在于,活动防火墙会导致它在每次启动时都请求防火墙权限。我怀疑这只能通过代码设计来解决。

防火墙权限请求

有一个旧修复似乎不再起作用: https ://ivadrenaline.wordpress.com/2015/07/07/do-you-want-the-application-to-accept-incoming-network-connections/

您可以签署框架,但是当您签署整个应用程序时,您会得到:

谷歌搜索该错误会导致:https ://developer.apple.com/library/content/qa/qa1940/_index.html

但是,虽然xattr -cr在应用程序上运行会导致签名继续进行而不会出现错误,但它仍然不会阻止防火墙对话框权限请求的出现。

我还尝试deep了无效的签名过程版本。

我认为 Bowtie 有应用程序本身和一个帮助应用程序,因此它可能有多个可执行文件,并且与此项目相关:具有多个可执行文件的应用程序出现签名但触发防火墙警告 另外: 为什么 OSX 不断要求我的防火墙权限签名的应用程序? 这个有希望的答案也不起作用: https ://stackoverflow.com/a/40067738/365478

解决方法是什么?

0 投票
1 回答
837 浏览

nfs - NFS 可以安装在 openstack swift 存储节点之一上吗?

目前,我在虚拟盒子中安装了一个 CentOS,它运行的是由 SAIO 安装的 openstack swift。

问题:数据不会存储在我挂载 nfs 的节点中。

比如我通过curl创建一个容器,输出返回201。但是mounted目录下没有数据。我参考文件/var/log/swift/proxy.error,它显示

Error Insufficient storage balabala...

有人能帮助弄清楚为什么会发生这种情况以及如何解决吗?

提前致谢!

当然,有一些关于挂载节点的日志。通过遵循 SAIO 指南,除了 ${USER} 之外,配置几乎保持不变。我使用“osddev”作为用户名和组名。

/mnt/sdb1 上的 /dev/sdb1 类型 xfs (rw,noatime,nodiratime,seclabel,attr2,nobarrier,inode64,logbufs=8,noquota)

我在 /mnt/sdb1 下得到了 4 个目录,分别命名为 1、2、3 和 4。我在目录'2'上安装了nfs,

我这样安装:

mount.nfs 192.168.0.1:/mnt/path/to/mount /mnt/sdb1/2

命令'mount'的输出就像

192.168.0.1:/mnt/path/to/mount on /mnt/sdb1/2 type nfs4(rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=...,hard,proto=tcp,端口=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.2,local_lock=none,addr=192.168.0.1)

'mnt' 的文件夹结构如下:

/mnt/sdb1 /1 /node /sdb1 /accounts /containers /objects /tmp /2 /node /sdb2 /containers /tmp /3 /node /sdb3 /accounts /containers /objects /tmp /4 /node /sdb4 /accounts /容器 /对象 /tmp

挂载完成后,我尝试创建一个新容器,它返回 201 created,在目录 /mnt/sdb1 下有一个名为 '48ce59400b16f806fe2fee7e40e236as.db' 和另一个名为 '48ce59400b16f806fe2fee7e40e236as.db.pending' 的文件/2/node/sdb2/containers/291/6ab/48ce59400b16f806fe2fee7e40e236as 与/mnt/sdb1下的其他目录相同。

当我尝试创建一个新对象时,/mnt/sdb1/2/node/sdb1 下有“objects”目录。但在 /mnt/sdb1/1 或 /mnt/sdb1/3 等其他目录中,存在“对象”目录。

所以我检查了 /var/log/swift 下的错误日志。我发现在日志'proxy.error'和'storage2.error'中,有一些错误,我会在下面列出:

代理错误:

Jun 8 17:26:33 localhost proxy-server: Started child 4024 Jun 8 17:27:04 localhost proxy-server: STDERR: (4024) wsgi 在http://127.0.0.1:8080/上启动 6 月 8 日 17:28:22 本地主机代理服务器:STDERR:(4024)接受('127.0.0.1',57718)6 月 8 日 17:28:22 本地主机代理服务器:STDERR:127.0.0.1 - - [08/Jun /2017 09:28:22]“GET /auth/v1.0 HTTP/1.1”200 356 0.004022(txn:tx016fa30128e74197af806-00593918b6)6 月 8 日 17:29:39 本地主机代理服务器:STDERR:(4024)接受(' 127.0.0.1',57721)6 月 8 日 17:29:41 本地主机代理服务器:错误存储不足 127.0.0.1:6020/sdb2(txn:tx45826ac5bc284bd8b15a6-0059391903)6 月 8 日 17:29:41 本地主机代理服务器:STDERR: 127.0.0.1 - - [08/Jun/2017 09:29:41]“PUT /v1/AUTH_test/annecontainer/annefile3 HTTP/1.1”201 254 1.474424(txn:tx45826ac5bc284bd8b15a6-0059391903)

storage2.error

Jun 8 17:26:31 localhost account-server: Started child 4004 Jun 8 17:26:31 localhost container-server: Started child 4007 Jun 8 17:26:32 localhost object-server: Started child 4016 Jun 8 17:27 :03 localhost object-server: STDERR: (4016) wsgi 在 127.0.0.1:6020/ Jun 8 17:27:03 启动 localhost account-server: STDERR: (4004) wsgi 在 127.0.0.1:6022/ Jun 启动8 17:27:03 localhost 容器服务器:STDERR: (4007) wsgi 在 127.0.0.1:6021/ 6 月 8 日 17:29:39 localhost 对象服务器上启动:STDERR: (4016) 接受 ('127.0.0.1' , 43279) Jun 8 17:29:40 localhost object-server: STDERR: ERROR:root:Filesystem at 9 does not support xattr#012Traceback (last last call last):#012 File "/home/osddev/swift/swift/ obj/diskfile.py",第 150 行,在 write_metadata#012 metastr[:xattr_size])#012 文件中"/usr/lib64/python2.7/site-packages/xattr-0.9.1-py2.7-linux-x86_64.egg/xattr/init .py”,第 185 行,在 setxattr#012 中返回 xattr(f).set(attr, value, options=options)#012 文件“/usr/lib64/python2.7/site-packages/xattr-0.9.1 -py2.7-linux-x86_64.egg/xattr/ init .py",第 78 行,在 set#012 中 return self._call(_setxattr, _fsetxattr, name, value, 0, options | self.options)#012 File " /usr/lib64/python2.7/site-packages/xattr-0.9.1-py2.7-linux-x86_64.egg/xattr/init _.py”,第 58 行,在 _call#012 返回 fd_func(self.value, *args)#012 文件“/usr/lib64/python2.7/site-packages/xattr-0.9.1-py2.7-linux- x86_64.egg/xattr/lib.py”,第 106 行,在 _fsetxattr#012 引发错误()#012 文件“/usr/lib64/python2.7/site-packages/xattr-0.9.1-py2.7-linux -x86_64.egg/xattr/lib.py", line 48, in error#012 raise IOError(errno, strerror)#012IOError: [Errno 95] Operation not supported Jun 8 17:29:41 localhost container-server: STDERR: (4007) 接受 ('127.0.0.1', 45775) Jun 8 17:29:41 localhost object-server: STDERR: 127.0.0.1 - - [08/Jun/2017 09:29:41] "PUT /sdb2/957 /AUTH_test/annecontainer/annefile3 HTTP/1.1" 507 263 1.300362 (txn: tx45826ac5bc284bd8b15a6-0059391903) Jun 8 17:29:41 localhost container-server: STDERR: 127.0.0.1 - - [08/Jun:49/2017 09:2 ] "PUT /sdb2/291/AUTH_test/annecontainer/annefile3 HTTP/1.1" 201 120 0.044787 (txn: tx45826ac5bc284bd8b15a6-0059391903)

到目前为止,我意识到 nfs 不支持 xattr。这会导致问题吗?

我想要做的是使用 swift-on-file 将数据存储在挂载目录中(通过 nfs),如 /mnt/sdb1/2。

0 投票
1 回答
943 浏览

linux-kernel - 修改 ext4 文件系统为文件添加自定义属性

我在 Linux 内核方面不是很有经验,所以我不知道如何做到这一点。

我要做的是修改 ext4 文件系统以在文件中添加自定义属性(例如,在创建文件时添加原始位置)。因此,不要将自定义属性添加到特定文件,而是在创建文件时自动添加到所有文件。

任何想法,或一些链接进行更深入的调查?

谢谢

0 投票
0 回答
251 浏览

shell - 使用 xattr 设置 PDF 内容创建器

我尝试选择 Finder 并使用 applescript 和 xattr 为 pdf 文件分配特定的内容创建者值。虽然脚本编译得很好,但它实际上并没有修改元数据项。如果我运行,mdls -n kMDItemCreator test.pdf我仍然会得到 kMDItemCreator 的旧值。知道我做错了什么吗?