我今天刚刚安装了 Ubuntu 13.04(之前是 11.04)。我无法从 Dash 使用软件中心。当我从 Dash 启动它时,它总是说我没有足够的权限来安装软件。但我的用户属于 sudo adm 和 lpadmin 组,这是理所当然的。我唯一可以使用它的方式是在控制台中使用“sudo software-center”。为什么它不像往常一样只要求我输入密码?这里的问题是什么?
答案1
如果您错误地在/usr/share/polkit-1/actions/org.debian.apt.policy
文件中出现了类似这样的内容:
...
<action id="org.debian.apt.install-or-remove-packages">
<description gettext-domain="aptdaemon">Install or remove packages</description>
<message gettext-domain="aptdaemon">To install or remove software, you need to authenticate.</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>no</allow_active>
</defaults>
</action>
...
当您尝试从 Ubuntu 软件中心安装某些内容时,您会收到以下警告:
您还可以从警告中查看详细信息。
因此,检查/usr/share/polkit-1/actions/org.debian.apt.policy
文件并确保其看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
<vendor>Apt Daemon</vendor>
<vendor_url>http://launchpad.net/aptdaemon/</vendor_url>
<icon_name>package-x-generic</icon_name>
<action id="org.debian.apt.get-trusted-vendor-keys">
<description gettext-domain="aptdaemon">List keys of trusted vendors</description>
<message gettext-domain="aptdaemon">To view the list of trusted keys, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.clean">
<description gettext-domain="aptdaemon">Remove downloaded package files</description>
<message gettext-domain="aptdaemon">To clean downloaded package files, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
<action id="org.debian.apt.change-config">
<description gettext-domain="aptdaemon">Change software configuration</description>
<message gettext-domain="aptdaemon">To change software settings, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.change-repository">
<description gettext-domain="aptdaemon">Change software repository</description>
<message gettext-domain="aptdaemon">To change software repository settings, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.install-file">
<description gettext-domain="aptdaemon">Install package file</description>
<message gettext-domain="aptdaemon">To install this package, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.update-cache">
<description gettext-domain="aptdaemon">Update package information</description>
<message gettext-domain="aptdaemon">To update the software catalog, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
<action id="org.debian.apt.install-or-remove-packages">
<description gettext-domain="aptdaemon">Install or remove packages</description>
<message gettext-domain="aptdaemon">To install or remove software, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.install-packages.high-trust-repo">
<description gettext-domain="aptdaemon">Install software from a high-trust whitelisted repository.</description>
<message gettext-domain="aptdaemon">To install software, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.install-packages-from-new-repo">
<description gettext-domain="aptdaemon">Add a new repository and install packages from it</description>
<message gettext-domain="aptdaemon">To install software from a new source, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.install-purchased-packages">
<description gettext-domain="aptdaemon">Add a new repository of purchased software and install packages from it</description>
<message gettext-domain="aptdaemon">To install purchased software, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.upgrade-packages">
<description gettext-domain="aptdaemon">Upgrade packages</description>
<message gettext-domain="aptdaemon">To install updated software, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
<action id="org.debian.apt.cancel-foreign">
<description gettext-domain="aptdaemon">Cancel the task of another user</description>
<message gettext-domain="aptdaemon">To cancel someone else's software changes, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
</action>
<action id="org.debian.apt.set-proxy">
<description gettext-domain="aptdaemon">Set a proxy for software downloads</description>
<message gettext-domain="aptdaemon">To use a proxy server for downloading software, you need to authenticate.</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
</action>
</policyconfig>
要编辑它,请在终端中使用以下命令切换到 root 用户:
sudo -i
然后运行以下命令:
gedit /usr/share/polkit-1/actions/org.debian.apt.policy
CTRLD并通过键入 或关闭该根会话exit
。