Veja o encfs como uma alternativa ao eCryptfs. Não sofre com o problema que você descreve.
Estou experimentando o uso do eCryptfs no topo da caixa de depósito e estou encontrando alguns problemas.
Meu sistema é GNU / Linux, openSUSE 12.2 para ser exato.
Minha configuração é assim: Eu configurei duas instâncias do VirtualBox executando o openSUSE 12.2, vamos chamá-las de VM1 e VM2. O Dropbox, como sempre, está sincronizando tudo no ~ / Dropbox. Para criar minha configuração do eCryptfs, faço o seguinte nas duas VMs:
mkdir -m 500 ~/ecryptfs_upper
mkdir -m 700 ~/Dropbox/ecryptfs_lower
sudo mount -t ecryptfs Dropbox/ecryptfs_lower/ ecryptfs_upper/
Eu configuro o eCryptfs com:
key type: passphrase
cipher: aes
key bytes: 16
plaintext passthrough: no
filename encryption: yes
Se eu continuar a criar um arquivo em ~ / ecryptfs_upper na VM1, ele será exibido corretamente na VM2 também. No entanto, quando eu altero esse arquivo em uma VM, às vezes (muitas vezes, mas nem sempre, por algum motivo) não parece ser atualizado na outra VM.
Se eu inspecionar os arquivos subjacentes em ~ / Dropbox / ecryptfs_lower nas duas máquinas virtuais, eles são idênticos (o sha256sum produz o mesmo hash), então o dropbox conseguiu sincronizá-los corretamente. Mas os arquivos correspondentes em ~ / ecryptfs_upper ainda são diferentes! Eu tenho que desmontar e montar novamente o eCryptfs para que as mudanças apareçam corretamente.
O problema parece ser que quando o dropbox atualiza um arquivo no diretório inferior do eCryptfs, o eCryptfs não percebe a mudança. Presumivelmente, o eCryptfs está assumindo que todas as mudanças passarão pela montagem. Para a maioria dos casos de uso que é obviamente uma suposição justa, mas ao usar o eCryptfs para criptografar o armazenamento em nuvem sincronizado como a caixa de depósito, é obviamente um grande problema.
Eu já vi várias pessoas defendendo o uso do eCryptfs com o dropbox, mas não vi esse problema mencionado. Alguém sabe de uma correção (uma maneira de desligar o cache que eCryptfs parece estar usando, por exemplo), ou de alguma alternativa para eCryptfs que não sofreria com esse problema?
Veja o encfs como uma alternativa ao eCryptfs. Não sofre com o problema que você descreve.
Você se deparou com uma falha de design no eCryptfs no Linux. Não há nenhum mecanismo para informar o eCryptfs de que uma alteração foi feita no cache de página inferior, portanto, ele não sabe se uma página foi alterada sob ela. Alterar os arquivos criptografados mais baixos em uma montagem eCryptfs ativa é uma espécie de inversão de bits no dispositivo de bloco enquanto ele é montado no EXT4. O EXT4 tem sua própria idéia sobre o estado do dispositivo de bloco porque ele supõe que é a única coisa que está mexendo com o dispositivo de bloco, e se isso for alterado, as coisas podem ir para o sul rapidamente.
Não é uma solução, mas sim o seu caminho. Testado no Linux Mint 17 e funciona perfeitamente, mas também deve funcionar em outras distribuições Linux.
#!/bin/bash export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" xhome=${HOME} # HOWTO # # Remove previous installation of Dropbox - all directories (~/.dropbox, ~/.dropbox-dist, ~/Dropbox) and in command line type: # # mkdir -p ${HOME}/.mount/dropbox # dd if=/dev/zero of=${HOME}/.mount/dropbox.img bs=4K count=2M # for 8GB # mkfs.xfs ${HOME}/.mount/dropbox.img # for XFS, but you can use your prefered FS, eg. EXT4 # mkdir ${HOME}/bin # # Put this script to ${HOME}/bin # # chmod 0755 ${HOME}/bin/dropbox-mount.sh # # Add to /etc/sudoers line: # # YourUserName ALL=NOPASSWD: /bin/mount # # Run this script: ${HOME}/bin/dropbox-mount.sh # # chown ( id -u ):( id -g ) ${HOME}/.mount/dropbox # # Next start Dropbox App and select ${HOME}/.mount/dropbox/ as a base directory, # Dropbox automatically will create ${HOME}/.mount/dropbox/Dropbox. # # IMPORTANT # Turn off Dropbox autostart in Dropbox preferences. # Add this script to system autostart (Setting->Startup Applications) xdropbox=".mount/dropbox" xdropbox_dir="${xhome}/${xdropbox}" xdropbox_img="${xhome}/${xdropbox}.img" if [ 'mount | grep -c "${xhome}/${xdropbox}"' -eq 0 ]; then sudo mount -o loop ${xdropbox_img} ${xdropbox_dir} fi sleep 10 && dropbox start &>/dev/null exit 0