現在暗号化されているサムドライブをマウントするには、次の手順を実行します。
# Works!
pass thumbdrive-password | # get device password entry from password manager
head -n 1 | # get the device password itself
sudo cryptsetup luksOpen /dev/sdb thumbdrive # unlock device
udisksctl mount -b /dev/mapper/thumbdrive # mount device
私はこのようなことをしたい:
# Does not work!
pass thumbdrive-password |
head -n 1 |
udisksctl unlock -b /dev/sdb # unlock device
udisksctl mount -b /dev/mapper/luks-foobar # mount device with uuid "foobar"
これにより、半権限を持つユーザー(org.freedesktop.udisks2.filesystem-mount
polkitの権限を持つ)がsudoを使用せずに暗号化されたファイルシステムをマウントできます。 Udiskはインタラクティブなパスワードプロンプトを使用するため、このパイプ方法は許可されません。udisksctl unlock
手動で入力せずにデバイスパスワードを入力するにはどうすればよいですか?
ベストアンサー1
USBドライブの場合バージョン 2.6.4それから
メモ:私はこれをテストしていません。 udisk 2.6.4を取得すると、そうなります(いつでもhttps://github.com/NixOS/nixpkgs/pull/41723NixOS安定版としてバックポートされています)。
修正する:これでudisks 2.8.0があるので、ソリューションをテストできます。私が逃した唯一のことはpass (...) | head (...)
。これを切り捨てるには、-n
フラグを使用するか、echo
出力| tr -d '\n'
に追加します。head
私はこれを以下の2つの解決策に反映しました。
一般(安全でない)ソリューション
この--key-file
フラグを使用し、キーファイルをパスワード文字列に置き換えます。/dev/sdb
パスワードによるロック解除hunter2
:
udisksctl unlock --block-device /dev/sdb --key-file <(echo -n "hunter2")
コマンドラインを介して機密データを直接渡すことは安全ではないため、この方法は避けるべきです。
pass
実装する
代わりに、パスワード文字列を検索しpass thumbdrive-password | head -n 1
、末尾の改行を切り取り、次を使用してそれをキーファイルに置き換えます。
udisksctl unlock \
--block-device /dev/sdb \
--key-file <(pass thumbdrive-password | head -n 1 | tr -d '\n')