Не могу подключить USB-устройства, выключить и т. Д. Как пользователь

Я попытался запустить gnome3 и gnome3 ppas для тестирования запуска Gnome 3.8. Через некоторое время я решил, что Gnome 3.8 не для меня, поэтому я сделал ppa-чистку обоих ppas. Как описано в gnome3-staging страницу ppa я тоже сделал:

$ sudo apt-get purge libpam-systemd
$ sudo apt-get install libpam-xdg-support

Проблема в том, что я больше не могу подключить свое внешнее USB-устройство. Когда я пытаюсь смонтировать его как пользователь, он терпит неудачу:

$ udisks --mount /dev/sdc1 
Mount failed: Not Authorized

Я вошел в сеанс XFCE, но то же самое происходит в резервном сеансе Gnome или в сеансе Unity. Кроме того, в XFCE меню "приостановить" и "выключить" недоступны.

Я не могу также открыть менеджер синаптических пакетов из меню XFCE (sudo synaptic работает).

После долгих поисков кажется, что это вопрос политики. Я вижу следующее в моем ~/.xsession-errors:

(polkit-gnome-authentication-agent-1:5805): polkit-gnome-1-WARNING **: Unable to determine the session we are in: No session for pid 5805

PID 5805 не существует. Если я попытаюсь начать polkit-dnome-authentication-agent-1 из xterm я получаю ту же ошибку (другой PID):

$ /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
...
(polkit-gnome-authentication-agent-1:15971): polkit-gnome-1-WARNING **: Unable to determine the session we are in: No session for pid 15971

(... строки - это предупреждения от GTK об отсутствующих файлах css и т. д.).

polkitd бежит:

$ pidof polkitd
1495

Есть ли что-то, что мне не хватает?

3 ответа

Решение

После долгих поисков я решил переустановить policykit-1 пакет. Когда я сделал sudo apt-get install --reinstall policykit-1Я получил сообщение о том, что пакет не может быть установлен, потому что он не был доступен в хранилище (извините за отсутствие точного сообщения!).

Итак, я побежал:

apt-cache policy $(dpkg -l | awk 'NR >= 6 {print $2}') | less

Это показало мне, что куча пакетов имеет такие версии, как 0.105-1ubuntu1pitti2тогда как доступная версия из репозиториев Ubuntu была чем-то вроде 0.105-1ubuntu1, Это похоже на gnome3 ppa вытащил пакеты из этого ppa.

Итак, я выполнил следующую команду (имена пакетов, которые имели pitti версии установлены):

sudo aptitude install dbus=1.6.8-1ubuntu6 dbus-x11=1.6.8-1ubuntu6 gir1.2-polkit-1.0=0.105-1ubuntu1 libdbus-1-3=1.6.8-1ubuntu6 libdbus-1-3:i386=1.6.8-1ubuntu6 libdbus-1-dev=1.6.8-1ubuntu6 libpolkit-agent-1-0=0.105-1ubuntu1 libpolkit-backend-1-0=0.105-1ubuntu1 libpolkit-gobject-1-0=0.105-1ubuntu1

Приведенная выше команда установила официальные версии пакетов Ubuntu-репозитория. Номера версий поступают с выхода apt-cache policy Команда выше. И сейчас все работает.

Для любой используемой вами DM (kdm, gdm, lightdm и т. Д.) Выполните следующие действия:

  1. Добавьте следующее в начало файла /etc/pam.d/:

    session required pam_loginuid.so
    session required pam_systemd.so
    
  2. Выйти, перезагрузить X, Войти

  3. Проверьте, что все работает

  4. Удалить исправление, примененное на шаге 1.

  5. Выйти, перезагрузить X, Войти

  6. Проверьте, что все по-прежнему работает!

Это так называемое исправление может быть удалено после входа в систему и проверки работоспособности системы. Это, очевидно, позволяет обновленной системе завершить некоторый процесс, который устраняет основную проблему. После этого (после входа в систему администратора?) Исправление может быть удалено.

Это также очистило все отчеты о сбоях, которые я получал сразу после входа в систему.

PolicyKit был сломан где-то во время обновления с 13.04 до 13.10, отчет об ошибке

https://bugs.launchpad.net/ubuntu/+source/policykit-desktop-privileges/+bug/1240336

Он содержит два обходных пути:

  1. Если вы используете lxdm, добавить в /etc/pam.d/lxdm эти строки:

    session required pam_loginuid.so
    session required pam_systemd.so
    
  2. или попробуйте запустить

    sudo pam-auth-update --force
    
Другие вопросы по тегам