web-dev-qa-db-ja.com

encfs暗号化フォルダー内の破損した権限を修正する方法

Gnome encfs managerを使用して暗号化フォルダーを管理およびマウントすると、何年も機能しました。突然、内部のファイルまたは権限が破損したようです。マウントは、マネージャーと同様に端末上で通常どおりに機能します。ルートフォルダー内のファイルにもアクセスできます。

しかし、すべての子ディレクトリでは、ファイル名のアクセス許可は疑問符としてのみ表示され、開くことができず、Sudoでもアクセス許可を変更できません。

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

localは、暗号化されたencfsフォルダーです。ルートシェルでは、自分のユーザーではcdすることはできません。自分のユーザーでは、疑問符を再度取得することしかできません。

[~/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で「Permission denied」を提供します。

何かアドバイス?失敗したハードドライブを示唆していますか?最近、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
some user

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へのアップグレードが原因であると考えています。古いデータで新しいバージョンを使用すると、常にうまく機能しない場合があります。

http://packages.ubuntu.com/ で見つけられるencfsパッケージのバージョンは現在:
in wily(15.10)はバージョン1.8.1-3です
in vivid(15.04)はバージョン1.7.4-5です
14.10では、Webページには表示されなくなりました。おそらく1.7.4でした...
in trusty(14.04LTS)はバージョン1.7.4-2.4ubuntu2です

または、.encfs6.xml "config file"が何らかの形で破損している可能性があります。それのバックアップコピーを使用しようとすると動作します。 man encfsには詳細がありますが、バージョン5への参照がまだ残っているようです。

好みの順に試してみます:

  1. 暗号化されたフォルダー/ファイルの権限を変更して、ユーザーがそれらをすべて読み取れるようにします(フォルダーを実行してファイルを一覧表示します)
  2. 次のようなコマンドを使用して、構成ファイルのバックアップコピー(.encfs6.xml)を試してください。

    ENCFS6_CONFIG=/home/me/.encfs6.xml encfs /encryptedDir /decryptedDir
    
  3. 適切なバックアップからデータを回復し、最新のencfsで新しいencfsフォルダー/セットアップを開始します。
  4. 古いバージョンのencfsを使用して、おそらく14.04LTSのライブフォルダーをマウントしてみてください。

HDエラーがない場合(syslogと多分SMART data)を参照してください)、HDがすぐに疑われることはありません。

1
Xen2050