Chr*_*ris 7 software-center permissions
我今天刚刚安装了 Ubuntu 13.04(来自 11.04)。而且我无法从 Dash 使用软件中心。当我从破折号启动它时,它总是说我没有足够的权限来安装软件。但是我的用户应该属于 sudo adm 和 lpadmin 组。我可以使用它的唯一方法是:控制台中的“sudo software-center”。为什么它不像往常那样直接询问我的密码?这里有什么问题?
如果您错误地在/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>
...
Run Code Online (Sandbox Code Playgroud)
当您尝试从 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>
Run Code Online (Sandbox Code Playgroud)
要编辑它,请在终端中切换到 root 用户:
sudo -i
Run Code Online (Sandbox Code Playgroud)
然后运行以下命令:
gedit /usr/share/polkit-1/actions/org.debian.apt.policy
Run Code Online (Sandbox Code Playgroud)
并CTRLD通过输入 或 来关闭该根会话exit。