Archivos considerados incorrectamente como dañados en el volumen encfs

8

Estoy usando encfs @1.7.5 y osxfuse @2.6.4 instalado a través de MacPorts 2.2.1 en mi MacBook Pro Retina a finales de 2013, que ejecuta OS X Mavericks 10.9.2. Al abrir ciertos archivos (por ejemplo, xlsx, pdf) en mi volumen encfs , aparece el mensaje "X está dañada y no se puede abrir". así como una sugerencia para moverlo a la basura. Sin embargo, cuando copio ese archivo en otro lugar (es decir, no en el volumen encfs ), parece que funciona bien. ¿Por qué es esto?

EDITAR: Busqué en línea y encontré un post que implica la desactivación de GateKeeper. Hizo el truco. En esencia, ingresa en "Preferencias de seguridad - > Seguridad y privacidad - > Permitir aplicaciones descargadas desde: cualquier lugar".

Entiendo que la solución funciona, pero me gustaría saber por qué funciona. Gracias de antemano.

EDIT 2: Además, si alguien pudiera etiquetar mi publicación con encfs , sería muy apreciado.

    
pregunta Nicolas De Jay 07.05.2014 - 19:05

5 respuestas

6

He encontrado la respuesta here (para BoxCryptor):

  

En circunstancias especiales, Mac OS X agrega el atributo extendido 'com.apple.quarantine' a un archivo que fue, por ejemplo, descargado de internet Esto también puede suceder a los archivos dentro de la carpeta BoxCryptor. Si un archivo cifrado tiene este conjunto de atributos extendidos, recibirá el mensaje de error "está dañado" cuando intenta abrir el archivo de texto sin formato en el volumen de BoxCryptor.

También intente esto, una solución más segura:

  

x) Abrir Terminal (Aplicaciones - > Utilidades)

     

y) Ejecute el siguiente comando (sustituya la ruta):

     

$ xattr -r -d com.apple.quarantine / path / to / encfs / mount / point

    
respondido por el apmouse 16.05.2014 - 00:25
2

@apmouse es correcto: puede reparar el archivo con xattr. Pero debe hacerlo repetidamente: cada vez que guarde un archivo, se le volverá a agregar el indicador de cuarentena.

Como señalaste, hay una alternativa menos segura pero más conveniente: deshabilita GateKeeper.

  

Entiendoquelasoluciónfunciona,peromegustaríasaberporquéfunciona.Graciasdeantemano.

LoprimeroquedebetenerencuentaesquesiingresaaKeynoteyeligeArchivo→Abrir,puedeabrirelarchivo"dañado" sin ningún problema. Esto implica que en realidad es Finder el que interviene para evitar abrir el archivo.

El mensaje de error "

respondido por el Mark E. Haase 14.10.2014 - 19:22
2

No sé por qué no parece que Apple tenga una forma sencilla de decir "este volumen es seguro", pero el problema es bastante fácil de resolver para encfs. A continuación, encontrará un script que uso para montar volúmenes encfs; resuelve automáticamente el problema de los atributos y también ayuda a recordar cerrar volúmenes. Podría extenderse leyendo encfs dir y mount point desde la línea de comandos, pero prefiero no hacerlo porque los errores tipográficos pueden crear riesgos de seguridad. Debe ser relativamente fácil de adaptar a otros mecanismos de montaje, como el cifrador de cajas. Funciona para mí, pero confías en tu propia experiencia para decidir si usarlo para ti. Muy específicamente, no soy un experto en seguridad, y no estoy calificado para juzgar si abre algún hueco de seguridad (especialmente mientras se está ejecutando, y especialmente en máquinas compartidas).

#!/bin/bash
# script to mount encrypted volume

ENCFSDIR=<encfs dir>
MOUNTPOINT=<mount point>
SAFELOC=<somewhere outside mounted volume>

encfs $ENCFSDIR $MOUNTPOINT

cd $MOUNTPOINT
xattr -r -d com.apple.quarantine .
MY_PROMPT='SECRET: '
echo 'noscecrets to finish'
while :
do
  echo -n "$MY_PROMPT"
  read line
  if [ 'nosecrets' == "$line" ] ; then
    break
  fi
  eval "$line"
done

\# and clean up
cd $SAFELOC
umount $MOUNTPOINT

exit 0
    
respondido por el user308273 14.01.2015 - 04:35
2

Creo que tengo una solución más persistente para esto en lugar de un comando que necesitas ejecutar cada vez. Como acabo de mencionar en el informe de errores en sentido ascendente :

  

Pensé para mí mismo, OS X usa usuarios del sistema y demonios del sistema para todos.   tipos de trabajos, tal vez el kernel espera poder hacer algunos   trabajar como otro usuario, o como root, para estos archivos, y marcarlos como   dañado cuando eso no funciona.

     

Así que marqué mi binario sshfs como setuid , y agregué la opción de montaje -o allow_other a mi línea de comando sshfs , y ... aparece   para poder abrir y editar documentos de manera confiable en el volumen montado.   Seguiré experimentando y haciendo un seguimiento si deja de funcionar.

     

Por supuesto, estoy preocupado por un binario raíz de setuid que se encuentra alrededor, pero   Parece mejor que la opción de ejecutar un demonio que requiere   privilegios de raíz en el lado del archivo servidor de las cosas para obtener NFS o SMB.   :)

Dado que allow_other es una opción de montaje FUSE y no específica para sshfs , creo que esta solución también funcionaría para encfs . ¡Sería genial saber si alguien lo probó y funcionó!

    
respondido por el Glyph 02.06.2015 - 09:36
1

Gracias, @Glyph, por lo que puedo decir, parece que funciona después de seguir tus pasos. Seguí estos pasos:

  1. Primero tuve que agregar un grupo al que pertenezco al grupo de administración de osxfuse, de lo contrario, allow_other fallaría con la operación no admitida.

    sysctl -w osxfuse.tunables.admin_group=12
    
  2. Luego usé el -o allow_other para encfs

Solo lo he probado un poco, pero el caso de falla reproducible que tenía parece estar funcionando ahora.

    
respondido por el abe 14.09.2015 - 06:43

Lea otras preguntas en las etiquetas