修正する

修正する

# 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

sudo0-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

関連情報