今日、Thunarにドライブをマウントしようとすると、Not authorized to perform operation.
メッセージが表示されました。
# 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
グループに属しています。
Systemd/loginの下にアクティブなセッションがある場合、polkit
またはudev
のいずれの場合でも、この種のルールは不要になります。元々、この種のルールはコンソールキット以外のセッションの回避策でしたが、Archはsystemdに移行し、不要になり、自動マウントの正しい動作を支援するのではなく阻害する可能性が高くなりました。
次の方法でアクティブなセッションがあることを確認できます。
loginctl show-session $XDG_SESSION_ID
出力の中に表示されるはずです:
Remote=no
Active=yes
これが表示されず、ディスプレイマネージャを使用していない場合は、X
を開始するときにセッションが保持されていることを確認する必要があります。したがって、X
は同じTTYで実行する必要があります。ログインが発生しました。 Arch Wiki のこのエントリを参照してください。
この記事 によると、問題を解決するために、/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%
は、ドライブをマウントできるようにするグループです。