挂载加密外置硬盘时,加密密码请求窗口为何会弹出在非活跃用户的会话中?
挂载加密外置硬盘时,加密密码请求窗口为何会弹出在非活跃用户的会话中?
这种情况确实挺闹心的,我之前也碰到过类似的桌面会话权限坑,咱们来拆解下背后的原因:
udisks2 的会话绑定逻辑:XFCE桌面是靠
udisks2这个后台服务来处理存储设备挂载的,而它有个“认死理”的设定——会把设备管理的权限绑定到系统中第一个登录的用户会话上,哪怕这个会话后来锁屏、变成非活跃状态都不变。当你插入加密硬盘时,udisks2只会去找它认定的“设备管理所有者”会话弹窗要密码,自然就跑到非活跃的那个会话里去了。Polkit 权限验证的双重要求:负责权限管控的
polkit(以前叫PolicyKit)在处理加密设备解锁请求时,会严格遵循udisks2的会话绑定逻辑。当另一个用户想挂载设备时,首先得在“主会话”(也就是第一个登录的会话)里输入加密密码完成设备解锁,然后还要在自己的会话里输入登录凭证,证明自己有权限操作这个设备,这就导致了那种麻烦的双重验证流程。XFCE 多会话管理的局限性:相比GNOME、KDE这些桌面环境,XFCE的多会话管理没有做设备权限的动态转移优化。它不会自动把设备管理权限切换到当前活跃的会话,所以哪怕你切到了自己的会话操作硬盘,udisks2还是认最初的那个会话当“主人”。
如果想临时解决这个问题,你可以在自己的活跃会话里重启udisks2服务,让它重新绑定到当前会话:
systemctl --user restart udisks2.service
不过要注意,重启后之前挂载的设备可能需要重新手动挂载。如果经常用多会话,也可以修改polkit的规则文件,让它优先把设备权限分配给当前活跃会话,不过这个需要对polkit规则有一定了解才行。
备注:内容来源于stack exchange,提问作者abukaj
相关产品推荐
相关产品推荐

