Не могу подключить 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 и т. Д.) Выполните следующие действия:
Добавьте следующее в начало файла /etc/pam.d/
: session required pam_loginuid.so session required pam_systemd.so
Выйти, перезагрузить X, Войти
Проверьте, что все работает
Удалить исправление, примененное на шаге 1.
Выйти, перезагрузить X, Войти
Проверьте, что все по-прежнему работает!
Это так называемое исправление может быть удалено после входа в систему и проверки работоспособности системы. Это, очевидно, позволяет обновленной системе завершить некоторый процесс, который устраняет основную проблему. После этого (после входа в систему администратора?) Исправление может быть удалено.
Это также очистило все отчеты о сбоях, которые я получал сразу после входа в систему.
PolicyKit был сломан где-то во время обновления с 13.04 до 13.10, отчет об ошибке
https://bugs.launchpad.net/ubuntu/+source/policykit-desktop-privileges/+bug/1240336
Он содержит два обходных пути:
Если вы используете
lxdm
, добавить в/etc/pam.d/lxdm
эти строки:session required pam_loginuid.so session required pam_systemd.so
или попробуйте запустить
sudo pam-auth-update --force