Eu estou executando o Ubuntu 14.04.3 32bit OS. Há alguns meses eu queria instalar o QTCAM a partir da fonte que
requer arquivos de biblioteca do systemd.
Como você sabe 14.04 o Ubuntu não usa systemd ainda, então, como o autor disse
Eu compilei e instalei a versão systemd218 dele.
Eu defino o prefixo de um caminho local para não bagunçar a configuração do sistema. Eu compilei e instalei.
Na próxima inicialização, ele falhou ao efetuar login na sessão do usuário padrão. Não conseguiu obter acesso ao diretório ~/.cache
.
Quando eu removê-lo, efetuando login no modo de texto, posso efetuar login na sessão do usuário padrão.
Após o login, tentei muitas coisas para corrigi-lo. Eu fiz sudo make uninstall
da pasta de origem systemd218 esperando que isso fosse reverter as mudanças, mas nada aconteceu.
Eu reinstalei todos os pacotes relacionados a pam.
Eu corri sudo pam-auth-update
para corrigir problemas de autorização.
Eu visitei muitos fóruns e li relatórios de bugs. Embora meu problema tenha se originado de um motivo conhecido,
Eu conheci muitos sintomas semelhantes sem uma solução comum.
Encontrei bibliotecas compartilhadas instaladas pelo systemd218 no diretório de origem systemd218 como
find -name *.so
./.libs/id128.so
./.libs/_journal.so
./.libs/_reader.so
./.libs/libgudev-1.0.so
./.libs/_daemon.so
./.libs/login.so
./.libs/libsystemd.so
./.libs/pam_systemd.so
./.libs/libudev.so
e reinstalado cada pacote contém aqueles do synaptic.
Eu também localizei arquivos conf, eles são muitos.
find -name *.conf
./sysusers.d/basic.conf
./sysusers.d/systemd.conf
./sysusers.d/systemd-remote.conf
./src/timesync/timesyncd.conf
./src/core/org.freedesktop.systemd1.conf
./src/core/system.conf
./src/core/user.conf
./src/journal-remote/journal-upload.conf
./src/journal-remote/journal-remote.conf
./src/resolve/org.freedesktop.resolve1.conf
./src/resolve/resolved.conf
./src/locale/org.freedesktop.locale1.conf
./src/login/logind.conf
./src/login/org.freedesktop.login1.conf
./src/hostname/org.freedesktop.hostname1.conf
./src/bootchart/bootchart.conf
./src/udev/udev.conf
./src/journal/coredump.conf
./src/journal/journald.conf
./src/machine/org.freedesktop.machine1.conf
./src/timedate/org.freedesktop.timedate1.conf
./test/bus-policy/hello.conf
./test/bus-policy/methods.conf
./test/bus-policy/test.conf
./test/bus-policy/signals.conf
./test/bus-policy/check-own-rules.conf
./test/bus-policy/ownerships.conf
./test/bus-policy/many-rules.conf
./sysctl.d/50-default.conf
./sysctl.d/50-coredump.conf
./factory/etc/nsswitch.conf
./tmpfiles.d/var.conf
./tmpfiles.d/etc.conf
./tmpfiles.d/x11.conf
./tmpfiles.d/systemd-nologin.conf
./tmpfiles.d/tmp.conf
./tmpfiles.d/systemd.conf
./tmpfiles.d/legacy.conf
./tmpfiles.d/systemd-remote.conf
Os mais importantes devem ser as regras do udev. Eu acho que um deles quebrou meu sistema .
find -name *.rules
./src/login/71-seat.rules
./src/login/73-seat-late.rules
./src/login/70-uaccess.rules
./src/login/70-power-switch.rules
./src/vconsole/90-vconsole.rules
./rules/60-persistent-serial.rules
./rules/60-persistent-alsa.rules
./rules/80-net-setup-link.rules
./rules/61-accelerometer.rules
./rules/50-udev-default.rules
./rules/60-persistent-input.rules
./rules/80-drivers.rules
./rules/60-persistent-storage-tape.rules
./rules/75-probe_mtd.rules
./rules/75-tty-description.rules
./rules/70-mouse.rules
./rules/60-cdrom_id.rules
./rules/95-udev-late.rules
./rules/60-drm.rules
./rules/42-usb-hid-pm.rules
./rules/75-net-description.rules
./rules/99-systemd.rules
./rules/60-persistent-v4l.rules
./rules/60-keyboard.rules
./rules/64-btrfs.rules
./rules/60-persistent-storage.rules
./rules/78-sound-card.rules
Tem muitos outros sintomas, como:
- Os aplicativos Gui não solicitam privilégios elavados para digitar a senha.
Por exemplo, quando clico em tipo de conta - > botão de mudança na janela
users-admin
nada acontece (gksu corre OK)
- O Nautilus não monta partições quando clico nelas na lista de dispositivos. Eu recebo o erro "Não autorizado a executar a operação" .
- A imagem de segundo plano do Lightdm não pode ser atualizada de acordo com o papel de parede do usuário.
- Quando clico na seção de informações do applet nm, obtenho o erro "Nenhuma conexão ativa encontrada" , embora a rede se conecte automaticamente.
-
Não consigo reinicializar sem privilégios de root que devem ser reinicializados sem sudo
com o seguinte comando:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Eu obtenho
org.freedesktop.ConsoleKit.Manager.NotPrivileged: Not Authorized error.
Eu gosto da minha sessão de desktop, não quero reinstalar todo o sistema. Embora seja desconfortável inserir privilégios de root
para executar alguns aplicativos, posso viver com isso se um dos caras inteligentes não encontrar uma solução.
EDITAR:
dpkg -l | grep 'pol.*kit'
ii gir1.2-polkit-1.0 0.105-4ubuntu3.14.04.1 i386 GObject introspection data for PolicyKit
ii libpolkit-agent-1-0:i386 0.105-4ubuntu3.14.04.1 i386 PolicyKit Authentication Agent API
ii libpolkit-backend-1-0:i386 0.105-4ubuntu3.14.04.1 i386 PolicyKit backend API
ii libpolkit-gobject-1-0:i386 0.105-4ubuntu3.14.04.1 i386 PolicyKit Authorization API
ii libpolkit-qt-1-1 0.103.0-1ubuntu1 i386 PolicyKit-qt-1 library
ii plainbox-secure-policy 0.5.3-2 all policykit policy required to use plainbox (secure version)
ii policykit-1 0.105-4ubuntu3.14.04.1 i386 framework for managing administrative policies and privileges
ii policykit-1-gnome 0.105-1ubuntu4 i386 GNOME authentication agent for PolicyKit-1
ii policykit-desktop-privileges 0.17 all run common desktop actions without password
EDIT2: Como a Steeldriver intuitivamente me levou no caminho certo
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
falha ao iniciar:
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
(polkit-gnome-authentication-agent-1:10331): Gtk-WARNING **: Theme parsing error: unity.css:111:9: 'shade' is not a valid property name
(polkit-gnome-authentication-agent-1:10331): polkit-gnome-1-WARNING **: Unable to determine the session we are in: No session for pid 10331
Uso a sessão gerenciador de exibição lightdm e gnome-cairo-dock .
Eu tentei executar exec gnome-session &
no terminal, o que me dá mais pistas.
Eu tenho a seguinte saída:
(gnome-session:23129): Gtk-WARNING **: Theme parsing error: unity.css:111:9: 'shade' is not a valid property name
(gnome-session-check-accelerated:23133): Gtk-WARNING **: Theme parsing error: unity.css:111:9: 'shade' is not a valid property name
gnome-session[23129]: WARNING: Could not get session id for session. Check that logind is properly installed and pam_systemd is getting used at login.
EDIT: 3
Eu adiciono /etc/pam.d/*
arquivos. Pensei que sudo pam-auth-update --force
consertaria a configuração de pam, mas quando modifico umask=0022
para umask=022
em /etc/pam.d/common-session
, ela não percebeu a modificação e não emitiu nenhum aviso.
$ grep '^[^#]' /etc/pam.d/common-auth | sed 's/^/ /'
auth [success=3 default=ignore] pam_unix.so nullok_secure
auth [success=2 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth [success=1 default=ignore] pam_ldap.so minimum_uid=1000 use_first_pass
auth requisite pam_deny.so
auth sufficient pam_usb.so
auth required pam_permit.so
auth optional pam_mount.so
auth optional pam_smbpass.so migrate
auth optional pam_cap.so
$ grep '^[^#]' /etc/pam.d/common-account | sed 's/^/ /'
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
account requisite pam_deny.so
account required pam_permit.so
account [success=ok new_authtok_reqd=done ignore=ignore user_unknown=ignore authinfo_unavail=ignore default=bad] pam_ldap.so minimum_uid=1000
$ grep '^[^#]' /etc/pam.d/common-session | sed 's/^/ /'
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so umask=0022
session required pam_unix.so try_first_pass nullok_secure
session required pam_unix.so
session optional pam_winbind.so
session optional pam_mount.so
session [success=ok default=ignore] pam_ldap.so minimum_uid=1000
session optional pam_systemd.so
session optional pam_ck_connector.so nox11
$ grep '^[^#]' /etc/pam.d/common-password | sed 's/^/ /'
password [success=3 default=ignore] pam_unix.so obscure sha512
password [success=2 default=ignore] pam_winbind.so use_authtok try_first_pass
password [success=1 default=ignore] pam_ldap.so minimum_uid=1000 try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_smbpass.so nullok use_authtok use_first_pass
password optional pam_gnome_keyring.so
Os sintomas e as soluções propostas são quase idênticos a este bug
um dos caras afirma que acrescentar
session required pam_loginuid.so
session required pam_systemd.so
linhas para /etc/pam.d/lightdm
corrigem o erro. Eu tentei, mas quebra lightdm, eu nem consegui logar com ele.
$ grep '^[^#]' /etc/pam.d/lightdm | sed 's/^/ /'
auth requisite pam_nologin.so
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
@include common-auth
auth optional pam_gnome_keyring.so
auth optional pam_kwallet.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required pam_limits.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
session optional pam_gnome_keyring.so auto_start
session optional pam_kwallet.so auto_start
session required pam_env.so readenv=1
session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale
@include common-password
EDIT: 4
Hoje, quando vi atualizações do udev e do systemd no pacote, achei que estava abençoado pensando que a atualização corrigiria o problema, mas infelizmente nada mudou.
Aqui estão os pacotes atualizados:
gir1.2-gudev-1.0 (1:204-5ubuntu20.17) to 1:204-5ubuntu20.18
libgudev-1.0-0 (1:204-5ubuntu20.17) to 1:204-5ubuntu20.18
libgudev-1.0-dev (1:204-5ubuntu20.17) to 1:204-5ubuntu20.18
libpam-systemd (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-daemon-dev (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-daemon0 (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-id128-0 (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-id128-dev (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-journal0 (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-login-dev (204-5ubuntu20.17) to 204-5ubuntu20.18
libsystemd-login0 (204-5ubuntu20.17) to 204-5ubuntu20.18
libudev-dev (204-5ubuntu20.17) to 204-5ubuntu20.18
libudev1 (204-5ubuntu20.17) to 204-5ubuntu20.18
python-systemd (204-5ubuntu20.17) to 204-5ubuntu20.18
systemd-services (204-5ubuntu20.17) to 204-5ubuntu20.18
udev (204-5ubuntu20.17) to 204-5ubuntu20.18
Então, qual pode ser o problema?
EDIT: 5
Hoje, percebi que, depois que o problema surgiu quando tentei definir autoria mais permissiva, a propriedade foi incorretamente equivocada em /etc/polkit-1/localauthority
Emitir sudo chown -R 777 /etc/polkit-1
em vez de sudo chmod -R 755 /etc/polkit-1
. Eu configurei para sudo chown root:root -R /etc/polkit-1
hoje.
A propósito, notei que /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
não é tão importante. Até removi o pacote que o contém (policykit-1-gnome). Eu testei se fizesse alguma alteração, nada mudou. Então eu removi consolekit
para ver a função dele, quando eu o removi apt-get installed policykit-1-gnome
, a berevidade de consolekit
não tem nenhum efeito em resolver o problema de autenticação que eu tenho também.
Não sei se é importante, aqui está a lista pam-auth-update
:
│ [*] Unix authentication
│ [*] Winbind NT/Active Directory authentication
│ [*] Mount volumes for user
│ [*] LDAP Authentication
│ [*] Register user sessions in the systemd control group hierarchy
│ [*] SMB password synchronization
│ [*] GNOME Keyring Daemon - Login keyring management
│ [*] ConsoleKit Session Management
│ [*] Inheritable Capabilities Management
EDIT: 6
Estou começando a pensar que não tem nada a ver com minha modificação no sistema de arquivos. Percebi que o trabalho upstart não está em execução. Pode estar relacionado com upstart - > transição systemd do processo init?
Porque
echo $UPSTART_SESSION
e
initctl list-sessions
retorna uma string vazia.
Gostaria de saber como meu sistema é inicializado?