2 votos

`open myfile.pdf` da error "no permission

En concreto, abriendo un terminal y escribiendo open myfile.pdf provoca un cuadro de diálogo en Vista previa con

El archivo "miarchivo.pdf" no se pudo abrir porque no tienes permisos para verlo"

Para ver o cambiar los permisos, seleccione el elemento en el Finder y elija Archivo > Obtener información.

Tenga en cuenta que esto también ocurre con open -a Preview.app myfile.pdf pero no no pasar por open -a Skim.app myfile.pdf . Además, este problema sólo se manifestó después de que mi MBP se actualizara forzosamente a Catalina 10.15.7 sin mi consentimiento; antes todo funcionaba con normalidad.

Ahora, el error es totalmente falso porque los permisos del archivo son -rw-r--r-- el propietario del archivo soy yo (es decir, $USER ) y el grupo es staff . Además, este archivo se encuentra en $mydir con cientos de otros archivos PDF. Todos tienen los mismos permisos de archivo, propietario e ID de grupo. La mayoría se abrirá sin problemas con una llamada a open de la Terminal, pero algunos no lo harán. Lamentablemente, no puedo determinar una manera directa de aislar lo que está causando este error OS.

He seguido otras sugerencias en este sitio, en vano. De hecho, pensé que había solucionado el problema ( ver aquí ), lo que implicaba borrar algunos contenidos del Contenedor de previsualización. Sin embargo, ese intento de solución sólo mejoraba el problema, pero no lo solucionaba del todo.

Si tiene alguna sugerencia nueva que no se haya mencionado ya en otro lugar de este sitio, le agradecería que la leyera.

EDITAR

Siguiendo la petición en los comentarios:

 ls -lOe@ myfile.pdf
-rw-r--r--@ 1 $USER  staff  - 1081682  5 Apr  2022 myfile.pdf
    com.apple.lastuseddate#PS        16
    com.apple.quarantine         22
    com.dropbox.attrs        26

Ten en cuenta que puedo abrir el PDF en Vista Previa sin ningún error si hago doble clic en él en Finder (y tengo Vista Previa configurado como mi visor de PDF predeterminado).

Hice lo que me pidieron y ejecuté

cd my/PDFs/folder/
chmod 644 *.pdf
chown $USER:staff *.pdf

Milagrosamente, myfile.pdf ahora se puede abrir en Vista previa con open -a Preview.app myfile.pdf . También milagrosamente, otros archivos PDF de la misma carpeta (llamémoslos file1.pdf y file2.pdf ) siguen sin poder abrirse utilizando open -a Preview.app ... pero pueden seguir abriéndose en Vista Previa haciendo doble clic en Finder con Vista Previa por defecto; o a través de open -a Skim.app file1.pdf .

EDIT2

He eliminado el com.apple.quarantine atributo extendido de los archivos ejecutando

xattr -d com.apple.quarantine *.pdf

como se sugiere aquí . Hasta ahora, no me he encontrado con un PDF que no se abra en Vista Previa usando open -a Preview.app ... . Si parece que el problema no persiste, aceptaré encantado una respuesta de @David Anderson si desea publicar una, o escribiré una yo mismo a tal efecto.

0voto

David Anderson Puntos 2189

Puede ver las banderas de archivo, las listas de control de acceso (ACL) y los atributos ampliados de todos los .pdf en el directorio de trabajo actual introduciendo el siguiente comando.

ls -lOe@ *.pdf

Nota: La opción -O es para las banderas de archivo, -e es para las listas de control de acceso y -@ es para atributos ampliados.

Como ya indicó el OP, el com.apple.quarantine atributo extendido estaba causando el problema. El OP eliminó este atributo extendido introduciendo el siguiente comando.

xattr -d com.apple.quarantine *.pdf

PARA SU INFORMACIÓN

El siguiente comando se puede utilizar para eliminar la mayoría de las banderas de archivo existentes.

chflags noopaque,dump,nouappnd,nouchg,nohidden *.pdf

Nota dump en lugar de nodump no es un error.

O bien, el siguiente comando más completo mayo ser utilizado.

sudo chflags 0 *.pdf

El siguiente comando se puede utilizar para eliminar la mayoría de las listas de control de acceso (ACL) existentes.

chmod -N *.pdf

Por último, el siguiente comando se puede utilizar para eliminar la mayoría de los atributos extendidos existentes.

xattr -c *.pdf

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