web-dev-qa-db-ja.com

コマンドラインからLUKSをマウントする

nautilusまたはcajaで、暗号化されたディスクのアイコンをクリックしてパスワードを入力すると、基盤となるブロックデバイスが/dev/mapper/luks-$UUIDにマッピングされ、/media/$USER/$DISKにマウントされます、ルートパスワードは必要ありません。 GUIなしでコマンドラインからこのプロセスを呼び出す方法はありますか。Sudoを回避し、マウントポイントをGUIから再びマウント解除できるようにすることを含みます。

11
PSkocik

これを行うための単一コマンドの方法を知りません。 GUIプログラムは、「正しい」アプローチを取るためにディスクをかなり調査しているので、その一部を自分で行う必要があります。ただし、Sudoは必要ありません。その結果、一連のイベントは比較的簡単です。

短い答え

udisks2パッケージのudisksctlを使用します。

udisksctl unlock -b /path/to/disk/partition
udisksctl mount -b /path/to/unlocked/device

上記が機能するためには、ユーザーアカウントが適切に承認されている必要があります。 DebianとUbuntuでは、これはplugdevグループにアカウントを追加することを意味します。

ディスクを使い終わったら:

udisksctl unmount -b /path/to/unlocked/device
udisksctl lock -b /path/to/disk/partition
udisksctl power-off -b /path/to/disk/or/partition

セットアップ方法

ここでは、(コマンドラインを使用して)設定を行い、ディスクを使用するプロセスをできるだけ簡単にする方法を説明します。 USBドライブ全体を単一のファイルシステムとして使用したいとします。他の構成では、手順を変更する必要があります。バリエーションに関する警告:権限のないアカウントがすべてを切断できるようにする暗号化されたコンテナーでLVMを使用する方法を見つけていません。 (udisksctlを使用してボリュームグループを非アクティブ化する方法がわかりません。)

説明のため、ディスクは/dev/sdaであるとします。後で簡単に参照できるように、ファイルシステムの名前が必要になります。 「example」を使用します。

ディスクをパーティション分割する

Sudo parted /dev/sdaを実行し、次のコマンドを実行します。

mklabel gpt
mkpart example-part 1MiB -1s
quit

mkpartコマンドは、おそらくパラメータを少し調整するように促します。推奨値を受け入れても問題ありません。

これで、パーティションは/dev/disk/by-partlabel/example-partを介して使用できるようになります。

LUKSパーティションを作成してマウントする

Sudo cryptsetup luksFormat /dev/disk/by-partlabel/example-part

プロンプトに従ってください。

Sudo cryptsetup luksOpen /dev/disk/by-partlabel/example-part example-unlocked

暗号化されたデバイスは/dev/mapper/example-unlockedで入手できます。これは永続的なものではありません。それはセットアッププロセスのためだけです。

ファイルシステムを作成する

使用しているファイルシステムがXFSであると仮定しましょう。他のほとんどすべての従来のファイルシステムは同じように機能します。重要なことは、後で参照できるラベルを追加することです。

Sudo mkfs -t xfs -L example /dev/mapper/example-unlocked

これで、ファイルシステムのブロックデバイスに/dev/disk/by-label/example経由でアクセスできるようになります。

ファイルシステムのアクセス許可を設定する

デフォルトでは、ファイルシステムにアクセスできるのはrootだけです。ほとんどの場合、ユーザーアカウントでファイルにアクセスできるようにする必要があります。アカウント名が「user」であると仮定します:

udisksctl mount -b /dev/disk/by-label/example
Sudo chown user:user /media/user/example

すべてを閉じる

udisksctl unmount -b /dev/disks/by-label/example
Sudo cryptsetup luksClose example-unlocked

ファイルシステムを使用する

これは定期的に行うことです。 USBドライブを差し込んだ後、

udisksctl unlock -b /dev/disks/by-partlabel/example-part
udisksctl mount -b /dev/disks/by-label/example

ユーザーアカウントが「user」の場合、ファイルシステムは/media/user/exampleにマウントされます。

ファイルシステムをアンマウントするには:

udisksctl unmount -b /dev/disks/by-label/example
udisksctl lock -b /dev/disks/by-partlabel/example-part
udisksctl power-off -b /dev/disks/by-partlabel/example-part

これで、USBドライブを取り外すことができます。

12
asciiphil

これは、Nautilus/Nemoによって保存されたキーを使用します。
gio mount -d /dev/dm-x

詳細は この回答を参照 です。

0
Redsandro