Encryption

如何在沒有 sudo 權限的情況下檢查 LUKS 設備是否已解鎖?

  • March 18, 2022

有沒有辦法在沒有 sudo 權限的情況下檢查 LUKS 設備是否已解鎖?

我知道兩個 問題,但所有答案都需要 sudo。

似乎我找到了一種間接的方法(處理 ’ 輸出的CleartextDeviceudisksctl info),但即使假設它是一個穩定的解決方案,它充其量只是一個 hack。

例如,Gnome-disks 不需要 sudo 權限,但它仍然可以解碼 LUKS 設備的鎖定/解鎖狀態。

例如,Gnome-disks 不需要 sudo 權限,但它仍然可以解碼 LUKS 設備的鎖定/解鎖狀態。

GNOME Disks 使用 UDisk 來獲取資訊。沒有什麼不好的,如果設備被鎖定或有效的對象路徑形式為,則該CleartextDevice屬性將始終為,其中轉換為,設備映射器明文設備名稱(在 DBus 上編碼)。如果您不想解析輸出,則可以使用僅獲取屬性。它還可以格式化 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"
}

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

引用自:https://unix.stackexchange.com/questions/694858