加密磁盘将不再解锁:未授权执行操作 (udisks-error-quark, 4)

Nic*_*oul 10 udisks luks gnome-disk-utility

2012 年,我使用 Ubuntu 的gnome-disks实用程序来加密外部驱动器。
去年我仍然能够解锁它。

但是今天我在 Ubuntu 2012.04 上再次尝试并gnome-disks说:

Error unlocking encrypted device
Not authorized to perform operation (udisks-error-quark, 4)
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题并解锁我的数据?

无权执行操作 (udisks-error-quark, 4)

小智 20

问题可以用sudo解决:

gksudo gnome-disks
Run Code Online (Sandbox Code Playgroud)

然后,正常运行

  • Ubuntu 18 删除了 `gksudo`,所以我只使用了 `sudo gnome-disks`。在单击按钮解锁分区和弹出对话框让我输入密码之间似乎有很大的延迟(约 5 秒),但除此之外它工作得很好。 (3认同)

Kin*_*ard 9

udisks2(由 gnome-disks-utilities 内部使用)返回的错误代码 4 是UDISKS_ERROR_NOT_AUTHORIZED_CAN_OBTAIN代码中的常量。

如果当前主体(实际上是 gnome-disks 应用程序)不允许进行解锁操作,则返回此代码,但是如果提供进一步的身份验证,通常是通过提供系统管理员(root)密码,则可能会允许它。

这种额外的密码查询通常由所谓的身份验证代理处理。此代理似乎未在您的环境中正确设置。

我在 i3wm 会话中使用 gnome-disks 时遇到了同样的问题(在 archlinux 中——但是这在 Ubuntu 下应该是类似的):安装了(传统的)“polkit-gnome”身份验证代理(并在会话启动时启动它之后)脚本),我首先获得了用于指定设备 LUKS 密码的密码对话框,然后是第二个对话框,要求输入 root 密码。

您提到的命令行 hack 也可以udisksctl以更简洁的方式使用:

udisksctl unlock --block-device /dev/sda1
udisksctl mount --block-device /dev/mapper/my_encrypted_volume
Run Code Online (Sandbox Code Playgroud)

请注意,udisksctl unlock当正确设置身份验证代理时, gnome-disks 会要求输入(相同的)两个密码。sudo这里不需要使用。

有关更多信息,请深入研究 udisks2 和 polkit 文档或直接查看 udisks2 源代码。这就是我的理解并最终为我解决了问题。