7 votos

Se denegó el acceso de lectura de archivos al archivo que poseo y tengo permisos completos de lectura/escritura.

Recibí un correo electrónico con un archivo de texto sin formato (llamado 'noname') a través de Gmail y lo descargué usando Chrome desde gmail.com. Es un informe automatizado recurrente. Todos los días recibo el archivo, lo descargo, lo abro, lo leo y disfruto de mi vida. Algunos días como hoy recibo el archivo, lo descargo y TextEdit en OS X no me permite abrirlo.

TextEdit informa "El documento "noname.txt" no se pudo abrir. No tienes permisos."

Un Obtener información en Finder muestra permisos:

ram (Yo) Leer y escribir
Staff Solo lectura
Todos Solo lectura

Desde un terminal puedo hacer lo que quiera con él (leer, escribir, cambiar el nombre...). Un ls -l muestra:
-rw-r--r--@ 1 ram staff

Un ls -le muestra lo mismo (es decir, no se muestran ACL).

¿Qué pasa?

0 votos

Tres preguntas no relacionadas: ¿Has considerado la posibilidad de un fallo del disco duro? ¿Has intentado abrirlo con vi en una Terminal? ¿Hay atributos extendidos en el archivo descargado (cuarentena o algo así)?

0 votos

Lo siento, no vi el "@". ¿Cuáles son los atributos extendidos del archivo entonces?

0 votos

El archivo es un archivo de texto simple creado al ejecutar un script que produce texto sin formato y redirigiéndolo al comando mail

4voto

Adam Hunter Puntos 6

Desde la depuración de un problema diferente (que apareció como deny file-read-data en la Consola, ver la otra respuesta), parece que sandboxd previene que las aplicaciones con sandbox accedan a datos en cuarentena, así que creo que tendrías que eliminar el atributo con: xattr -d com.apple.quarantine /ruta/al/archivo (ver por ejemplo https://superuser.com/a/28394/46794). Tendrías que preceder el comando con sudo si el archivo no pertenece a tu usuario, pero según tu información, lo hace.

El otro usuario informó que usando una aplicación sin sandbox resolvió el problema, lo que confirmaría que el sandboxing es el culpable.

Una nota: Cuando ls muestra atributos extendidos con @ al lado del campo de permisos, no necesitas usar ls -le archivo, sino en su lugar ls -l@ archivo.

0 votos

Gracias por atrapar ls -l@. Me equivoqué totalmente y como resultado no vi los atributos que confirmaban las respuestas sugiriendo cuarentena. Todos los archivos afectados han sido etiquetados con com.apple.quarantine desde alguna actualización (¿de Apple?).

2 votos

IIUC, se alienta a las aplicaciones que se descargan de Internet a etiquetar los archivos descargados como en cuarentena, para que el usuario sea advertido cuando los abra haciendo doble clic. Al parecer, el mecanismo está en su lugar desde OS X 10.5, por lo que tal vez Chrome se haya actualizado para usarlo. Una API para hacer eso se describe aquí: ilostmynotes.blogspot.de/2012/06/…, que apunta a developer.apple.com/library/ios/documentation/general/Refere‌​nce/… para algunos documentos oficiales.

0voto

No estoy seguro si este es el mismo problema que tuve, pero de vez en cuando TextEdit (y no cualquier otra aplicación) empezaba a mostrar un diálogo como este cuando intentaba abrir cualquier archivo:

El documento "test.txt" no pudo ser abierto. No tienes permiso.

Para ver o cambiar permisos, selecciona el ítem en el Finder y elige Archivo > Obtener información.

Había mensajes como este en 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]: : 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.)"

Pude abrir archivos normalmente después de cerrar y volver a abrir TextEdit.

No he vuelto a ver esos diálogos después de reemplazar TextEdit con TextEditPlus, que básicamente es un fork no sandboxed de TextEdit.

-2voto

butterflydust Puntos 1

Salga, no simplemente cierre, sino que salga de TextEdit. Cuando TextEdit se vuelva a abrir, "recordará" quién es usted.

Cuando Text Edit tenga el Menú Principal Cmd-Q o Menú Principal / TextEdit / Salir o Haga clic derecho en el icono del dock de TextEdit y elija Salir.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X