Como corrigir permissões corrompidas dentro da pasta criptografada do encfs

1

Eu gerencio e montei uma pasta criptografada com o gerenciador de encapsulamento Gnome e funcionou por anos. De repente parece que os arquivos ou permissões dentro foram corrompidos. Montagem funciona como de costume no terminal como com o gerente. Os arquivos na pasta raiz também estão acessíveis.

Mas, em todos os diretórios filhos, vejo apenas as permissões de nome de arquivo como pontos de interrogação, não consigo abri-las e, mesmo com o sudo, não posso alterar as permissões.

root@lubuntu:/home/user/safe# ls -l   
    ls: cannot access local: Permission denied
    total 1932
    ...
    d????????? ? ?      ?           ?            ? local

local é a pasta criptografada do encfs montado. Em um shell de root não consigo fazer o cd dentro, com meu próprio usuário eu posso, mas apenas obter pontos de interrogação novamente:

[~/safe/local/backup]$ ls -l
ls: cannot access index.htm: Permission denied
ls: cannot access bookmarks.html: Permission denied
total 0
d????????? ? ? ? ?                ? foo/
-????????? ? ? ? ?                ? index.html
-????????? ? ? ? ?                ? bookmarks.htm

O estranho é que com o meu usuário eu posso acessar os arquivos em ~ / safe / local / fine mas nada em seus subdiretórios, e o root pode fazer ainda menos. chown e chmod me dão "Permission denied" como root ou com sudo.

Algum conselho? Isso sugere um disco rígido com defeito? Atualizei recentemente do Lubuntu 14.10 para 15.10.

Atualização: aqui está a saída detalhada na montagem:

[~/safe]$ encfs -f -v  .local test
14:37:17 (main.cpp:559) Root directory: .local/
14:37:17 (main.cpp:560) Fuse arguments: (fg) (threaded) (keyCheck) encfs test -f -o use_ino 
14:37:17 (FileUtils.cpp:174) version = 20
14:37:17 (FileUtils.cpp:177) found new serialization format
14:37:17 (FileUtils.cpp:191) subVersion = 20100713
14:37:17 (Interface.cpp:117) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
14:37:17 (SSL_Cipher.cpp:335) allocated cipher ssl/aes, keySize 32, ivlength 16
14:37:17 (Interface.cpp:117) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
14:37:17 (SSL_Cipher.cpp:335) allocated cipher ssl/aes, keySize 32, ivlength 16
14:37:17 (FileUtils.cpp:1542) useStdin: 0
EncFS Password: 
14:37:22 (Interface.cpp:117) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0)
14:37:22 (SSL_Cipher.cpp:335) allocated cipher ssl/aes, keySize 32, ivlength 16
14:37:24 (FileUtils.cpp:1550) cipher key size = 52
14:37:24 (Interface.cpp:117) checking if nameio/block(4:0:2) implements nameio/block(3:0:0)
14:37:24 (MACFileIO.cpp:71) fs block size = 1024, macBytes = 8, randBytes = 0
14:37:24 (FileNode.cpp:116) calling setIV on (null)
14:37:24 (RawFileIO.cpp:164) getAttr error on .local/uWX6wZAqMvH5RDRMW5oIb67F8V6CoVXYZPwUf6bHbu1Ms0: No such file or directory
14:37:24 (CipherFileIO.cpp:94) in setIV, current IV = 0, new IV = 11696676665880040319, fileIV = 0
14:37:24 (DirNode.cpp:641) created FileNode for .local/uWX6wZAqMvH5RDRMW5oIb67F8V6CoVXYZPwUf6bHbu1Ms0
14:37:24 (encfs.cpp:133) getattr .local/uWX6wZAqMvH5RDRMW5oIb67F8V6CoVXYZPwUf6bHbu1Ms0
14:37:24 (RawFileIO.cpp:164) getAttr error on .local/uWX6wZAqMvH5RDRMW5oIb67F8V6CoVXYZPwUf6bHbu1Ms0: No such file or directory
14:37:24 (encfs.cpp:136) getattr error: No such file or directory
14:37:24 (MACFileIO.cpp:71) fs block size = 1024, macBytes = 8, randBytes = 0
14:37:24 (FileNode.cpp:116) calling setIV on (null)
14:37:24 (RawFileIO.cpp:164) getAttr error on .local/kbZ-jP1BAg0-VpqtlMjAKr9F: No such file or directory
14:37:24 (CipherFileIO.cpp:94) in setIV, current IV = 0, new IV = 17358762804478769995, fileIV = 0
14:37:24 (DirNode.cpp:641) created FileNode for .local/kbZ-jP1BAg0-VpqtlMjAKr9F
(continues like that...)
    
por some user 05.11.2015 / 14:34

1 resposta

1

Eu já vi esses tipos de erros antes, enquanto testava o EncFS & amp; eCryptFS na verdade, mas eu não lembrava exatamente onde eu tinha visto até agora. Foi por não ter permissão para ler ou listar arquivos no diretório (diretórios precisam de x permissão de execução para listar arquivos), e eu acho que isso poderia ter acontecido com um erro de decodificação também.

Eu tive alguns problemas com permissões em arquivos montados / descriptografados antes. Eles pareciam refletir apenas as permissões do arquivo criptografado (a página man do EncFS o chama de "rootdir"), e a alteração dos arquivos montados / descriptografados parecia não funcionar. Talvez o proprietário & amp; permissões para o "rootdir" / arquivos criptografados não estão corretos? Tente alterar as permissões "rootdir" / criptografadas para que seu usuário possa acessá-las (rwx?).

Eu achava que o root deveria ser capaz de ler qualquer coisa, não importa o quê ... mas o encfs não precisa do sudo para rodar, e tentei um teste com uma única pasta criptografada secret e foi descriptografado o ponto de montagem open e mesma coisa aconteceu:

$ ls -go
total 0
drwxr-xr-x 2 80 Nov 11 00:14 open
drwxr-xr-x 2 80 Nov 11 00:14 secret

$ sudo ls -go
ls: cannot access open: Permission denied
total 0
d????????? ?  ?            ? open
drwxr-xr-x 2 80 Nov 11 00:14 secret

Ou talvez não esteja descriptografando os arquivos corretamente. Se você tiver um bom backup dos dados, isso seria ótimo.

Estou pensando que a atualização de 14,10 para 15,10 pode ser responsável. Às vezes, usar uma versão mais nova com dados antigos nem sempre funciona bem.

As versões do pacote encfs que posso encontrar no link estão atualmente:
em astuto (15.10) é versão 1.8.1-3
em cores vivas (15.04) é a versão 1.7.4-5
em 14.10 não está mais na página, provavelmente foi em 1.7.4 ...
em trusty (14.04LTS) é a versão 1.7.4-2.4ubuntu2

Ou, o arquivo de configuração .encfs6.xml "pode ter sido corrompido de alguma forma. Tentando usar uma cópia de backup dele poderia funcionar. man encfs tem alguns detalhes, mas parece que ainda tem referências à versão 5.

Eu tentaria, por ordem de preferência:

  1. Altere as permissões da pasta / arquivos criptografados para que o usuário possa ler todos eles (& amp; executar as pastas, para listar arquivos)
  2. Tente uma cópia de backup do arquivo de configuração ( .encfs6.xml ) com um comando semelhante a:

    ENCFS6_CONFIG=/home/me/.encfs6.xml encfs /encryptedDir /decryptedDir
    
  3. Recupere os dados de um bom backup e comece com uma nova pasta / configuração de encfs com os últimos encfs.
  4. Tente usar uma versão mais antiga do encfs para montar a pasta, talvez com um 14.04LTS ao vivo

Se não houver erros de HD (veja o syslog e talvez até os dados SMART), então eu não suspeitaria do HD imediatamente.

    
por Xen2050 08.11.2015 / 08:38