我拥有的文件具有完全的读/写权限,对文件的读访问权限被拒绝


5

我通过Gmail收到了一封带有纯文本附件的电子邮件(名为“ noname”),并使用Chrome从gmail.com下载了该电子邮件。这是周期性的自动报告。每天我都会得到文件,下载,打开,阅读并享受我的生活。像今天这样的几天,我得到了文件,下载了文件,而OS X上的TextEdit不允许我打开它。

TextEdit报告“无法打开文档“ noname.txt”。您没有权限。”

一个获取信息在Finder中显示的权限:

ram(我)读写
人员只读
所有人只读

在终端上,我可以做任何我想做的事情(读,写,重命名...)。一个ls -l节目:
-rw-R - R的- @ 1 RAM人员

一个ls -le示出了相同的(即,示出没有ACL)。

是什么赋予了?


三个不相关的问题:您是否考虑过硬盘故障?您是否尝试在终端中使用vi打开它?下载的文件上有扩展属性(隔离区)吗?
Frizlab

对不起,没有看到“ @”。那么,文件上的扩展属性是什么?
Frizlab

该文件是通过运行一个脚本,脚本输出纯文本及输送到创建一个纯文本文件mail
拉姆

com.apple.metadata:kMDItemWhereFroms316Bcom.apple.quarantine 71B
拉姆

Disk Utility不会报告任何问题。来自终端的所有内容(包括vi)都可以顺利运行。
拉姆

Answers:


2

通过调试其他问题(显示deny file-read-data在控制台中,请参见其他答案),沙盒似乎阻止了沙盒应用程序读取隔离的数据,因此我认为您需要使用以下命令删除该属性:( xattr -d com.apple.quarantine /path/to/file 例如,参见https ://superuser.com/a/28394/46794)。sudo如果文件不属于您的用户,则需要在命令前加上前缀,但是根据您的信息,该文件确实属于您。

另一个用户报告说,使用非沙盒化应用程序已解决了该问题,这可以确认沙盒出了问题。

旁白:当ls在权限字段旁边使用@报告扩展属性时,您不需要ls -le file,而是ls -l@ file


感谢ls -l @ catch。我完全弄错了,结果没有看到可以澄清和确认隔离建议的属性。自从进行某些更新(从Apple?)以来,所有受影响的文件都已标记为com.apple.quarantine。
拉姆

2
IIUC,鼓励从Internet下载的应用程序将下载的文件标记为已隔离,以便在双击用户打开文件时向用户发出警告。自OS X 10.5以来,该机制显然已经存在,因此也许Chrome已更新为可以使用它。此处描述了一个用于执行此操作的API:ilostmynotes.blogspot.de/2012/06/…,该文件指向一些官方文档的developer.apple.com/library/ios/documentation/general/Reference/…
Blaisorblade 2014年

0

我不确定这是否是我遇到的相同问题,但是当我尝试打开任何文件时,TextEdit(而不是其他任何应用程序)时不时地开始显示这样的对话框:

无法打开文档“ test.txt”。您没有权限。

要查看或更改权限,请在Finder中选择项目,然后选择“文件”>“获取信息”。

在中有这样的消息system.log

9/13/12 10:41:42.952 PM sandboxd[21081]: ([357]) TextEdit(357) deny file-read-data /Users/lauri/Desktop/test.txt
9/13/12 10:41:55.118 PM TextEdit[357]: NSFileVersion tried to tried to add a new generation and failed. Versioned file URL: file://localhost/Users/lauri/Notes/test.txt, contents URL: file://localhost/Users/lauri/Notes/test.txt.sb-de6477ff-BhVNrq, error: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.118 PM TextEdit[357]: NSDocument failed to preserve the old version of a document. Here's the error:
Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.119 PM TextEdit[357]: <Document: 0x7f971d00a510>: An error occurred while attempting to preserve the backup file at file://localhost/Users/lauri/Notes/test.txt.sb-de6477ff-BhVNrq: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"

退出并重新打开TextEdit之后,我能够正常打开文件。

我将TextEdit替换为TextEditPlus后,我再也没有看到这些对话框,它基本上是TextEdit的非沙盒化分支。


-1

退出,不仅仅是关闭,而是退出TextEdit。当TextEdit再次启动时,它将“记住”您的身份。

当“文本编辑”具有主菜单Cmd-Q或“主菜单” /“文本编辑” /“退出”或右键单击TaskEdit停靠图标并选择“退出”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.