答え1
たとえば、Gnome Diskにはsudo権限は必要ありませんが、LUKSデバイスのロック/ロック解除状態をデコードできます。
GNOMEディスクはUDiskを使用して情報を取得します。デバイスがロックされているか、有効なオブジェクトパス(に変換されている)の形式の場合、このプロパティCleartextDevice
は常にデバイスマッパープレーンテキストデバイス名(DBusでエンコードされています)になります。出力を解析したくない場合は、get属性のみを使用してください。より簡単に解析するために、出力をJSONにフォーマットすることもできます。/
/org/freedesktop/UDisks2/block_devices/dm_2d<num>
dm_2d<num>
dm-<num>
-
_2d
udisksctl
busctl
CleartextDevice
ロックされたLUKSデバイス:
$ busctl get-property org.freedesktop.UDisks2 /org/freedesktop/UDisks2/block_devices/sda1 org.freedesktop.UDisks2.Encrypted CleartextDevice -j
{
"type" : "o",
"data" : "/"
}
ロック解除されたLUKSデバイス:
$ busctl get-property org.freedesktop.UDisks2 /org/freedesktop/UDisks2/block_devices/nvme0n1p3 org.freedesktop.UDisks2.Encrypted CleartextDevice -j
{
"type" : "o",
"data" : "/org/freedesktop/UDisks2/block_devices/dm_2d0"
}
USB DBus API安定性が保証され、デバイスのオブジェクトパスは常にです/org/freedesktop/UDisks2/block_devices/<name>
。
ただし、LUKSデバイスにサブデバイスがあるかどうかをいつでも簡単に確認できます。プレーンテキストデバイスは常にLUKSデバイスのサブデバイスであるため、lsblk
sysfsまたはsysfsで確認できます。
ロックされたLUKSデバイス:
$ ls /sys/block/sda/sda1/holders/
ロック解除されたLUKSデバイス:
$ ls /sys/block/nvme0n1/nvme0n1p3/holders
dm-0
答え2
質問は理解できないかもしれませんが、/dev/mapper/
マッピングが存在することを確認するだけです。パスワードが復号化またはロック解除されていない場合は存在しません。
アクティブドライブマッピングドライブを表示するには:
for file in $(readlink /dev/mapper/*); do echo $(ls -1 "/sys/block/${file##[./]}/slaves"); done