Как исправить поврежденные разрешения внутри зашифрованной папки encfs

Я управляю и монтирую зашифрованную папку с помощью Gnome encfs manager, и она работала годами. Внезапно кажется, что файлы или разрешения внутри были повреждены. На терминале как обычно работает монтаж как у менеджера. Файлы в корневой папке также доступны.

Но во всех дочерних каталогах я вижу разрешения имени файла только как вопросительные знаки, не могу их открыть и даже с помощью sudo не могу изменить разрешения.

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

local - это подключенная зашифрованная папка encfs На корневой оболочке я не могу войти внутрь, с моим собственным пользователем я могу только получить вопросительные знаки снова:

[~/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

Странно то, что с моим пользователем я могу получить доступ к файлам в ~/safe/local/ fine, но ничего в его подкаталогах, а root может сделать еще меньше. chown и chmod дают мне "Отказано в доступе" как root или с помощью sudo.

Любой совет? Это намекает на неисправный жесткий диск? Я совсем недавно обновился с Lubuntu 14.10 до 15.10.

Обновление: вот подробный вывод при монтировании:

[~/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...)

1 ответ

Решение

Я уже сталкивался с подобными ошибками, когда тестировал EncFS и eCryptFS, но до сих пор точно не помню, где это видел. Это было из-за отсутствия разрешения на чтение или список файлов в каталоге (каталоги нужно x выполнить разрешение на перечисление файлов), и я думаю, что это могло произойти и с ошибкой дешифрования.

У меня были некоторые проблемы с разрешениями в смонтированных / расшифрованных файлах ранее. Похоже, что они отражают только права доступа к зашифрованному файлу (справочная страница EncFS называет его "rootdir"), и изменение смонтированных / расшифрованных файлов, похоже, не работает. Может быть, владелец и права доступа к "rootdir" / зашифрованным файлам неверны? Попробуйте изменить "rootdir" / зашифрованные разрешения, чтобы ваш пользователь мог получить к ним доступ (rwx?).

Я думал, что root должен иметь возможность читать что угодно, несмотря ни на что... но для запуска encfs не требуется sudo, и я попытался выполнить тест с одной зашифрованной папкой secret и это расшифровано точка монтирования open и случилось то же самое:

$ 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

Или, может быть, это неправильно расшифровывает файлы. Если у вас есть хорошая резервная копия данных, это было бы здорово.


Я думаю, что обновление с 14.10 до 15.10 может быть ответственным. Иногда использование более новой версии со старыми данными не всегда работает хорошо.

encfs версии пакета, которые я могу найти на http://packages.ubuntu.com/, в настоящее время:
в хитром (15.10) есть версия 1.8.1-3
В Vivid (15.04) есть версия 1.7.4-5
в 14.10 его больше нет на веб-странице, вероятно, 1.7.4...
в верном (14.04LTS) есть версия 1.7.4-2.4ubuntu2

Или .encfs6.xml Возможно, файл конфигурации был поврежден. Попытка использовать резервную копию этого может сработать. man encfs имеет некоторые детали, но похоже, что он все еще имеет ссылки на версию 5.

Я бы попробовал, в порядке предпочтения:

  1. Измените права доступа к зашифрованной папке / файлам, чтобы ваш пользователь мог прочитать их все (и выполнить папки, чтобы вывести список файлов)
  2. Попробуйте резервную копию файла конфигурации (.encfs6.xml) с командой, аналогичной:

    ENCFS6_CONFIG=/home/me/.encfs6.xml encfs /encryptedDir /decryptedDir
    
  3. Восстановите данные из хорошей резервной копии и начните с новой папки / конфигурации Encfs с последними версиями Encfs.
  4. Попробуйте использовать более старую версию encfs для монтирования папки, возможно, с живым 14.04LTS

Если нет ошибок HD (см. Системный журнал и, возможно, даже данные SMART), я бы не заподозрил HD сразу.

Другие вопросы по тегам