# cryptsetup luksOpen /dev/somedevice --key-file <(gpg2 somekeyfile.gpg)
常に失敗しますFailed to open key file.
。これを行う方法はありますか?--key-file -
また失敗しました。私がしなければならない唯一のことは、名前付きパイプを使用することだけでした。しかし、迷惑です。
ああ、実際の問題は、/dev/fd/63
一般ユーザーが作成したファイルはsudoコマンドで開くことができないということです。解決策はありますか?
修正する
最新のcryptsetupが長年リリースされたからです。エラーは--key-file -
もう存在しません。これで、この質問はほとんどの最新のディストリビューションには無効です。次のパイプラインはファイルでのみ機能します。
gpg2 somekeyfile.gpg | sudo cryptsetup ... --key-file -
答え1
sudo を使用するときに権限の問題と同じくらい簡単な場合は、ファイル全体を bash に渡して、親プロセスではなく sudo の子プロセスでファイルが開かれていることを確認できます。
sudo bash -c 'cryptsetup luksOpen /dev/somedevice --key-file <(gpg2 somekeyfile.gpg)'
答え2
sudo
0-2(stdin、stdout、srderr)を除くすべての開いているファイル記述子を閉じます。たとえば、
$ ls -l /dev/fd/ 30</
total 0
lrwx------ 1 tim tim 64 Nov 4 20:08 0 -> /dev/pts/5
lrwx------ 1 tim tim 64 Nov 4 20:08 1 -> /dev/pts/5
lrwx------ 1 tim tim 64 Nov 4 20:08 2 -> /dev/pts/5
lr-x------ 1 tim tim 64 Nov 4 20:08 3 -> /proc/26165/fd
lr-x------ 1 tim tim 64 Nov 4 20:08 30 -> /
$ sudo ls -l /dev/fd/ 30</
total 0
lrwx------ 1 root root 64 Nov 4 20:09 0 -> /dev/pts/5
lrwx------ 1 root root 64 Nov 4 20:09 1 -> /dev/pts/5
lrwx------ 1 root root 64 Nov 4 20:09 2 -> /dev/pts/5
lr-x------ 1 root root 64 Nov 4 20:09 3 -> /proc/26170/fd