File considerati erroneamente danneggiati nel volume di encfs

8

Sto utilizzando encfs @1.7.5 e osxfuse @2.6.4 installato tramite MacPorts 2.2.1 sul mio MacBook Pro Retina Late 2013 che esegue OS X Mavericks 10.9.2. Quando apro determinati file (ad esempio xlsx, pdf) nel mio volume encfs , viene visualizzato l'errore "X è danneggiato e non può essere aperto". così come un suggerimento per spostarlo nel cestino. Tuttavia, quando copio quel file altrove (cioè non sul volume encfs ), sembra funzionare bene. Perché è questo?

EDIT: ho cercato online e ho trovato un post che coinvolge disabilitando GateKeeper. Ha fatto il trucco. In sostanza, vai in "Preferenze di sicurezza - > Sicurezza e privacy - > Consenti alle applicazioni scaricate da: Ovunque".

Capisco che la soluzione funzioni, ma mi piacerebbe sapere perché funziona. Grazie in anticipo.

EDIT 2: Inoltre, se qualcuno potesse taggare il mio post con encfs , sarebbe molto apprezzato.

    
posta Nicolas De Jay 07.05.2014 - 19:05
fonte

5 risposte

6

Ho trovato la risposta qui (per BoxCryptor):

Under special circumstances, Mac OS X adds the extended attribute 'com.apple.quarantine' to a file which was e.g. downloaded from the internet. This can also happen to files within the BoxCryptor Folder. If an encrypted file has this extended attribute set, you receive the "is damaged" error message when trying to open the plaintext file in the BoxCryptor Volume.

Prova anche questo, una soluzione più sicura:

x) Open Terminal (Applications -> Utilities)

y) Run the following command (substitute the path):

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

    
risposta data 16.05.2014 - 00:25
fonte
2

@apmouse è corretto: puoi riparare il file con xattr. Ma devi farlo ripetutamente: ogni volta che salvi un file, verrà aggiunto il contrassegno di quarantena.

Come hai sottolineato, c'è un'alternativa meno sicura ma più conveniente: disabilita GateKeeper.

Iunderstandthatthesolutionworks,butIwouldliketoknowwhyitworks.Thanksinadvance.

LaprimacosadanotareèchesevaiinKeynoteescegliFile→Apri,puoiaprireilfile"danneggiato" senza problemi. Ciò implica che in realtà è Finder che interviene per impedire l'apertura del file.

Il messaggio di errore "

risposta data 14.10.2014 - 19:22
fonte
2

Non so perché apple non sembra avere un modo semplice per dire "questo volume è sicuro", ma il problema è abbastanza facile da risolvere per encfs. Di seguito trovi uno script che utilizzo per il montaggio dei volumi encfs; risolve automaticamente il problema degli attributi e aiuta anche a ricordare di chiudere i volumi. Potrebbe essere esteso leggendo encfs dir e mount point dalla riga di comando, ma preferisco non farlo perché gli errori di battitura potrebbero creare rischi per la sicurezza. Dovrebbe essere adattato relativamente facilmente ad altri meccanismi di mount, come boxcryptor. Funziona per me, ma ti affidi alla tua esperienza nel decidere se usarla per te stesso. In particolare, non sono un esperto di sicurezza e non sono qualificato per giudicare se apre delle falle nella sicurezza (specialmente mentre è in esecuzione, e specialmente su macchine condivise).

#!/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
    
risposta data 14.01.2015 - 04:35
fonte
2

Penso di avere una soluzione più persistente per questo piuttosto che un comando che devi eseguire ogni volta. Come ho appena menzionato su il bug report a monte :

I thought to myself, OS X uses system users and system daemons for all kinds of jobs, perhaps the kernel is expecting to be able to do some work as another user, or as root, to these files, and marking them as damaged when that doesn't work.

So I marked my sshfs binary as setuid, and I added the -o allow_other mount option to my sshfs command line, and ... I appear to be able to open and edit documents reliably on the mounted volume. I will continue to experiment and follow up if it stops working.

I am of course concerned about a setuid root binary lying around, but it seems better than the option of running a daemon which requires root privileges on the file server side of things to get NFS or SMB. :)

Dato che allow_other è un'opzione di montaggio FUSE e non specifica per sshfs , credo che questa soluzione potrebbe funzionare anche per encfs . Sarebbe bello sapere se qualcuno l'ha provato e ha funzionato!

    
risposta data 02.06.2015 - 09:36
fonte
1

Grazie @Glyph, da quello che posso dire sembra funzionare dopo aver seguito i tuoi passi. Ho seguito questi passaggi:

  1. Per prima cosa ho dovuto aggiungere un gruppo che appartengo al gruppo admin osxfuse, altrimenti allow_other avrebbe fallito con un'operazione non supportata.

    sysctl -w osxfuse.tunables.admin_group=12
    
  2. Quindi usa -o allow_other in encfs

L'ho provato solo per un po ', ma il caso di errore riproducibile che avevo sembra ora funzioni.

    
risposta data 14.09.2015 - 06:43
fonte

Leggi altre domande sui tag