Marcus Asked: 2022-03-18 13:56:41 +0800 CST2022-03-18 13:56:41 +0800 CST 2022-03-18 13:56:41 +0800 CST 如何在没有 sudo 权限的情况下检查 LUKS 设备是否已解锁? 772 有没有办法在没有 sudo 权限的情况下检查 LUKS 设备是否已解锁? 我知道两个 问题,但所有答案都需要 sudo。 似乎我找到了一种间接的方法(处理 ' 输出的CleartextDevice值udisksctl info),但即使假设它是一个稳定的解决方案,它充其量只是一个 hack。 例如,Gnome-disks 不需要 sudo 权限,但它仍然可以解码 LUKS 设备的锁定/解锁状态。 luks encryption 2 个回答 Voted Best Answer Vojtech Trefny 2022-03-18T23:20:48+08:002022-03-18T23:20:48+08:00 例如,Gnome-disks 不需要 sudo 权限,但它仍然可以解码 LUKS 设备的锁定/解锁状态。 GNOME Disks 使用 UDisk 来获取信息。没有什么不好的,如果设备被锁定或有效的对象路径形式为,则该CleartextDevice属性将始终为,其中转换为,设备映射器明文设备名称(在 DBus 上编码)。如果您不想解析输出,则可以使用仅获取属性。它还可以格式化 JSON 格式的输出,以便于解析。//org/freedesktop/UDisks2/block_devices/dm_2d<num>dm_2d<num>dm-<num>-_2dudisksctlbusctlCleartextDevice 锁定的 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" } UDisks 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 CR. 2022-03-19T00:10:56+08:002022-03-19T00:10:56+08:00 我可能不理解这个问题,但只是看看/dev/mapper/是否存在映射。除非它被解密/解锁,否则它不会在那里。 要显示活动驱动器映射驱动器: for file in $(readlink /dev/mapper/*); do echo $(ls -1 "/sys/block/${file##[./]}/slaves"); done
GNOME Disks 使用 UDisk 来获取信息。没有什么不好的,如果设备被锁定或有效的对象路径形式为,则该
CleartextDevice
属性将始终为,其中转换为,设备映射器明文设备名称(在 DBus 上编码)。如果您不想解析输出,则可以使用仅获取属性。它还可以格式化 JSON 格式的输出,以便于解析。/
/org/freedesktop/UDisks2/block_devices/dm_2d<num>
dm_2d<num>
dm-<num>
-
_2d
udisksctl
busctl
CleartextDevice
锁定的 LUKS 设备:
解锁的 LUKS 设备:
UDisks DBus API保证稳定,设备的对象路径始终为
/org/freedesktop/UDisks2/block_devices/<name>
.但是您总是可以简单地检查 LUKS 设备是否有一个孩子。明文设备将始终是 LUKS 设备的子设备,因此您可以
lsblk
从 sysfs 或从 sysfs 进行检查。锁定的 LUKS 设备:
解锁的 LUKS 设备:
我可能不理解这个问题,但只是看看
/dev/mapper/
是否存在映射。除非它被解密/解锁,否则它不会在那里。要显示活动驱动器映射驱动器: