ときにnautilus
またはcaja
I暗号化されたディスクのアイコンをクリックすると、パスワードを入力し、基礎となるブロックデバイスはにマッピングされます/dev/mapper/luks-$UUID
し、それがに搭載されます/media/$USER/$DISK
、何のrootのパスワードは必要ありません。GUIなしでコマンドラインからこのプロセスを呼び出す方法はありますか(sudoを回避し、マウントポイントをGUIから再度アンマウントできるようにするなど)。
ときにnautilus
またはcaja
I暗号化されたディスクのアイコンをクリックすると、パスワードを入力し、基礎となるブロックデバイスはにマッピングされます/dev/mapper/luks-$UUID
し、それがに搭載されます/media/$USER/$DISK
、何のrootのパスワードは必要ありません。GUIなしでコマンドラインからこのプロセスを呼び出す方法はありますか(sudoを回避し、マウントポイントをGUIから再度アンマウントできるようにするなど)。
回答:
これを行う単一コマンドの方法を知りません。GUIプログラムは、「正しい」アプローチを取るためにディスクをかなり調査しているので、その一部を自分で行う必要があります。ただし、sudoは必要ありません。その結果、一連のイベントは比較的簡単です。
パッケージudisksctl
から使用udisks2
:
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
。
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ドライブを取り外すことができます。
その答えによってasciiphilは正しいように私には思える、とそのようにマークされなければなりません。
「これを行うための単一コマンドの方法がわかりません。」私も、対応する機能リクエストを開きません。回避策として、ラッパースクリプトを作成して、パーティションのロックを解除してマウントする単一コマンドの方法を提供できます。
Bashを使用すると仮定して、以下のスクリプトをとして保存unlock-and-mount
しますPATH
。たとえば、実行可能にして、のディレクトリに置きます。その後、を使用すると、1つの手順でデバイスのロックを解除してマウントできunlock-and-mount /dev/disk/by-id/my-device-part-X
ます。
警告:これは、udisksctl
stdoutに送信されるメッセージの解析と、udisksctl
コマンドラインインターフェイスの安定性に依存しています。udisksctl
マニュアルページによれば、これは壊れやすいという。
[この]プログラムは、スクリプトや他のプログラムで使用することを意図したものではありません。オプション/コマンドは、メンテナンスリリースでも将来互換性のない方法で変更される可能性があります。
それまでの間、次のスクリプトは今のところ機能します。
#!/usr/bin/env bash
# A convenience wrapper around `udisksctl`.
# Trace execution
set -x
# Abort on errors. (I find this helpful, despite the cautions given in
# http://mywiki.wooledge.org/BashFAQ/105 and
# http://mywiki.wooledge.org/BashFAQ/112 .)
set -e
set -u
# Define functions
die () {
echo >&2 "$@"
exit 1
}
# Validate input argument(s)
[[ "$#" -eq 1 ]] || die "Exactly 1 argument required: path to partition ID. $# given"
[[ -b "$1" ]] || die "$1 is not a block device"
[[ "$1" == /dev/disk/by-id/* ]] || die "$1 does not begin '/dev/disk/by-id/'"
# Unlock partition
unlockedpart="$(udisksctl unlock -b "$1" |\
tail -n1 |\
sed -e 's/^Unlocked \/dev\/[[:print:]]\+ as \([[:print:]]\+\).$/\1/' \
)"
# Mount unlocked partition
udisksctl mount -b "$unlockedpart"
これは、Nautilus / Nemoによって保存されたキーを使用します。
gio mount -d /dev/dm-x
詳細については、この回答を参照してください。
udisks
(またはudisks2
)を通じて行うと思います。CLIユーティリティのオプションを調査すると、さらに回答が得られる場合があります。