Not authorized to perform operation.
今天,当我尝试在 Thunar 中安装驱动器时收到一条消息。
# cat /etc/polkit-1/localauthority/50-local.d/10-udiskie.pkla
[Local Users]
Identity=unix-group:storage
Action=org.freedesktop.udisks2.*
ResultAny=yes
ResultInactive=no
ResultActive=yes
我在storage
组里。
答案1
polkit
如果您在 systemd/logind 下有活动会话,则无论是否需要此类规则,udev
都不再需要。最初,此类规则是非控制台会话的解决方法,但现在 Arch 已转移到 systemd,它们不再是必要的,并且更有可能抑制正确的自动挂载行为而不是协助它。
您可以通过以下方式检查是否有活动会话:
loginctl show-session $XDG_SESSION_ID
它应该显示在其输出中:
Remote=no
Active=yes
如果没有显示,并且您没有使用显示管理器,则需要确保在启动X
会话时保留该会话,因此X
必须在登录发生的同一 TTY 上运行。请参阅此条目拱门维基。
答案2
根据本文为了解决您的问题,您可以将下一行添加到您的/etc/polkit-1/rules.d/XX.rules
polkit.addRule(function(action, subject) {
if (action.id == 'org.freedesktop.udisks2.filesystem-mount-system' && subject.user == '%username%') {
return polkit.Result.YES;
}
}
);
替换%username%
为您需要安装驱动器的用户。
您还可以允许用户组安装。为此,请将下一行插入您的/etc/polkit-1/rules.d/XX.rules
:
polkit.addRule(function(action, subject) {
if (action.id == 'org.freedesktop.udisks2.filesystem-mount-system' && subject.isInGroup('%groupname%')) {
return polkit.Result.YES;
}
}
);
%groupname%
您希望能够安装驱动器的组在哪里。