最近サーバーを再起動しましたが、ecryptfsのマウントに失敗しました。
...
ユーザーキーリングで署名が見つかりません。
対話式 "ecryptfs-mount-private"
user@host:~$ をお試しください。
パスワードが変更されたためですか?
しかし、
1. There's no mount password
2. We might have login password
マウントされたディレクトリを復元しようとすると、次のように出力されます。
user@host:~$ ls
Access-Your-Private-Data.desktop README.txt
user@host:~$ ecryptfs-mount-private
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
user@host:~$ sudo ecryptfs-mount-private
[sudo] password for user:
Enter your login passphrase:
Inserted auth tok with sig [ad21fabcda6abfeab] into the user session keyring
fopen: No such file or directory
user@host:~$
ご覧のとおり、奇妙なエラーが表示されます。fopen: No such file or directory
そしてecryptfs-mount-private
- なしで実行するとsudo
失敗します。ログインパスワードを使用してフォルダをマウントすると、真のように動作し、一時ecrypts-recover-private
フォルダにマウントされます。
また試してみましたが、ecryptfs-rewrap-password
成功しませんでした。いいえ sudo
。したがってsudo ecryptfs-rewrap-password
、repackageを使用すると成功しますが、再起動後も同じ状況が続きます。
要約すると、ログイン時に暗号化されたホームディレクトリの自動マウントを変更する方法は?
答え1
ecryptfsプライベートフォルダを設定し、テスト用にラップされたパスワードファイルから読み取りおよび書き込み権限を削除しました...メッセージを表示した直後にsyslogを確認した場合
Info: Check the system log for more information from libecryptfs
次の行が表示されます。
1月15日 00:21:48 sys ecryptfs-insert-wrapped-passphrase-into-keyring: ラップされたパスワードのバージョンを検出できませんでした:許可が拒否されました
1月15日 00:21:48 sys ecryptfs-insert-wrapped-passphrase-into-keyring:間違いパスワードをロック解除してみてください。ファイル内の[/home/user/.ecryptfs/wrapped-passphrase];rc = [-13]
これは、 ~/.ecryptfs/wrapped-passphrase ファイルの権限確認を指す非常に強力な矢印になります。 (sudoやstraceは不要)
全体として、ecryptfs-mount-private
マウントする同じユーザーと同じディレクトリでコマンドを実行していて、wrapped-passphrase
ファイルに次のものがあることを確認してください。-rw--------または(600)権限と暗号化されたディレクトリと同じ所有者。
答え2
つまり、ユーザーのファイルにwrapped-passphrase
無効な権限があります(でなければなりません-rw------- user user
、です-rw------- root root
)。
次のコマンドを使用してコマンドを実行しますecryptfs-mount-private
(ログインパスワードを入力)strace
。
strace -o /tmp/strace.log -e trace=file ecryptfs-mount-private
コンテンツ/tmp/strace.log
:
user@host:~$ sudo strace -o /tmp/strace.log -e trace=file ecryptfs-mount-private
[sudo] password for user:
Enter your login passphrase:
Inserted auth tok with sig [3ab5cd8e5f8c5acb] into the user session keyring
fopen: No such file or directory
user@host:~$ cat /tmp/strace.log
execve("/usr/bin/ecryptfs-mount-private", ["ecryptfs-mount-private"], [/* 13 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
getcwd("/home/user", 4096) = 9
open("/usr/bin/ecryptfs-mount-private", O_RDONLY) = 3
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3872, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
stat("/home/user/.ecryptfs/wrapping-independent", 0x7fff65e61c30) = -1 ENOENT (No such file or directory)
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3873, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
stat("/home/user/.ecryptfs/wrapped-passphrase", {st_mode=S_IFREG|0600, st_size=58, ...}) = 0
stat("/home/user/.ecryptfs/Private.sig", {st_mode=S_IFREG|0600, st_size=34, ...}) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3874, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
stat("/usr/local/sbin/stty", 0x7fff65e61c40) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/stty", 0x7fff65e61c40) = -1 ENOENT (No such file or directory)
stat("/usr/sbin/stty", 0x7fff65e61c40) = -1 ENOENT (No such file or directory)
stat("/usr/bin/stty", 0x7fff65e61c40) = -1 ENOENT (No such file or directory)
stat("/sbin/stty", 0x7fff65e61c40) = -1 ENOENT (No such file or directory)
stat("/bin/stty", {st_mode=S_IFREG|0755, st_size=72496, ...}) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3875, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3876, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3877, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3878, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3879, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3880, si_uid=0, si_status=0, si_utime=68, si_stime=0} ---
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3881, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
+++ exited with 1 +++
したがって、情報が十分ではないことがわかります。同じコマンドを実行します(ログインパスワードを入力)。ただし、-f
フラグを使用して子プロセスを追跡して使用します。根右:
sudo strace -o /tmp/strace2.log -f -e trace=file ecryptfs-mount-private`
ファイルの一部/tmp/strace2.log
:
...
3963 open("/root/.ecryptfsrc", O_RDONLY) = -1 ENOENT (No such file or directory)
3963 open("/home/user/.ecryptfs/wrapped-passphrase", O_RDONLY) = 3
...
3964 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
3964 open("/root/.ecryptfs/Private.mnt", O_RDONLY) = -1 ENOENT (No such file or directory)
3964 open("/dev/shm/ecryptfs-root-Private", O_RDWR|O_CREAT|O_NOFOLLOW, 0600) = 3
3964 open("/root/.ecryptfs/Private.sig", O_RDONLY) = -1 ENOENT (No such file or directory)
3964 +++ exited with 1 +++
3954 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3964, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
3954 +++ exited with 1 +++
ご覧のとおり、ファイルPrivate.sig
が見つかりません根;特定のディレクトリ内ではなく、復元したい暗号化されたディレクトリのユーザーが実行する必要があるようです。
要約すると、ユーザー権限(ログインパスワードの入力)でこのコマンドを実行しました。
strace -o /tmp/strace3.log -f -e trace=file ecryptfs-mount-private`
ファイルの一部/tmp/strace3.log
:
...
4137 open("/lib/x86_64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 3
4137 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
4137 open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
4137 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
4137 open("/home/user/.ecryptfsrc", O_RDONLY) = -1 ENOENT (No such file or directory)
4137 open("/home/user/.ecryptfs/wrapped-passphrase", O_RDONLY) = -1 EACCES (Permission denied)
4137 open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
4137 +++ exited with 1 +++
4112 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4137, si_uid=1000, si_status=1, si_utime=0, si_stime=0} ---
...
ご覧のとおり、ecryptfs-mount-private
ユーティリティはユーザーのwrapped-passphrase
ファイルにアクセスできないため、次の結果が得られます。許可が拒否されました情報。
/home/user/.ecryptfs/wrapped-passphrase
ファイルの権限を確認してください。権限は次のとおりです。
-rw------- 1 root root
sudo chown user:user /home/user/.ecryptfs/wrapped-passphrase
ユーザーがファイルの所有者を変更し、ecryptfs-mount-private
straceを使用せずに(ログインパスワードを入力)、上記()コマンドを再実行して、次の結果が発生しました。成功情報:
INFO: Your private directory has been mounted.
INFO: To see this change in your current shell:
cd: /home/user