como reverter privilégios quebrados em 14.04?

1

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?

    
por kenn 23.01.2016 / 19:45

1 resposta

0

A mídia ao vivo do Ubuntu tem a função de reinstalação.

Inicialize um CD ou USB ao vivo e inicie a instalação. Selecione a opção para instalar as atualizações do pacote durante a instalação. Eventualmente, você encontrará uma pergunta perguntando se deseja "Reinstalar o Ubuntu". Ao selecionar essa opção, o instalador tentará não apagar seu sistema existente.

    
por Metta Crawler 23.01.2016 / 20:17