Ubuntu – No Permissions for software center

permissionssoftware-center

I just installed Ubuntu 13.04 (coming from 11.04) today. And I can't use the Software Center from the Dash. When I start it from the dash, it always says that I don't have enough permissions to install software. But my user is in the sudo adm and lpadmin group, as it should be. The only way I can use it is with: "sudo software-center" in the console. Why doesn't it just ask for my password like it always did? Whats is the problem here?

Best Answer

If, by mistake, you have something like in /usr/share/polkit-1/actions/org.debian.apt.policy file:

...

  <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>

...

you will get the following warning when you try to install something from Ubuntu Software Center:

warning

You can check also the details from the warning.

So, check /usr/share/polkit-1/actions/org.debian.apt.policy file and be sure that is looking like this:

<?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>

To edit it, switch to the root user in terminal with:

sudo -i

then run the following command:

gedit /usr/share/polkit-1/actions/org.debian.apt.policy

and close that root session with CTRLD or by typing exit.

Related Question