O gerenciador de atualizações e o apt-get não podem concluir as atualizações devido a erros de “permissão negada” nos scripts de pós-instalação

2

No meu desktop Ubuntu 10.04 hoje alguns pacotes (ca-certificados, postgres, samba, ...) foram atualizados automaticamente pelo gerenciador de atualização e algo deu errado. A atualização terminou com mensagens de erro.

E agora não é mais possível instalar ou desinstalar qualquer coisa. Eu tentei atualizar para o Ubuntu 12.04, mas isso dá o mesmo tipo de erros.

Estas são as mensagens de erro (em alemão) que estão impedindo qualquer alteração:

$ sudo apt-get upgrade  
Paketlisten werden gelesen... Fertig  
Abhängigkeitsbaum wird aufgebaut         
Status-Informationen einlesen... Fertig  
Die folgenden Pakete sind zurückgehalten worden:  
  google-chrome-stable  
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.  
8 nicht vollständig installiert oder entfernt.  
Nach dieser Operation werden 0B Plattenplatz zusätzlich benutzt.  
Möchten Sie fortfahren [J/n]? j  
Richte install-info ein (4.13a.dfsg.1-5ubuntu1) ...  
/var/lib/dpkg/info/install-info.postinst: 36: update-info-dir: Permission denied  
dpkg: Fehler beim Bearbeiten von install-info (--configure):  
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 126 zurück  
Richte ca-certificates-java ein (20110426ubuntu0.10.04.2) ...  
dpkg (Unterprozess): kann installiertes post-installation-Skript nicht ausführen: Keine Berechtigung  
dpkg: Fehler beim Bearbeiten von ca-certificates-java (--configure):  
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 2 zurück  
Richte samba-common ein (2:3.4.7~dfsg-1ubuntu3.14) ...  
/var/lib/dpkg/info/samba-common.postinst: 122: ucf: Permission denied  
dpkg: Fehler beim Bearbeiten von samba-common (--configure):  
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 126 zurück  
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von samba-common-bin:  
 samba-common-bin hängt ab von samba-common (>= 2:3.4.0~pre1-2); aber:  
  Paket samba-common ist noch nicht konfiguriert.  
dpkg: Fehler beim Bearbeiten von samba-common-bin (--configure):  
 Abhängigkeitsprobleme - lasse es unkonfiguriert  
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von samba:  
 samba hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:  
  Paket samba-common ist noch nicht konfiguriert.  
 samba hängt ab von samba-common-bin; aber:  
  Paket samba-common-bin ist noch nicht konfiguriert.  
dpkg: Fehler beim Bearbeiten von samba (--configure):  
 Abhängigkeitsprobleme - lasse es unkonfiguriert  
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von smbclient:  
 smbclient hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:  
  Paket samba-common ist noch nicht konfiguriert.  
dpkg: Fehler beim Bearbeiten von smbclient (--configure):  
 Abhängigkeitsprobleme - lasse es unkonfiguriert  
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von smbfs:  
 smbfs hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:  
  Paket samba-common ist noch nicht konfiguriert.  
dpkg: Fehler beim Bearbeiten von smbfs (--configure):  
 Abhängigkeitsprobleme - lasse es unkonfiguriert  
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von winbind:  
 winbind hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:  
  Paket samba-common ist noch nicht konfiguriert.  
dpkg: Fehler beim Bearbeiten von winbind (--configure):  
 Abhängigkeitsprobleme - lasse es unkonfiguriert  
Fehler traten auf beim Bearbeiten von:  
 install-info  
 ca-certificates-java  
 samba-common  
 samba-common-bin  
 samba  
 smbclient  
 smbfs  
 winbind  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu tentei encontrar os arquivos que levaram ao erro "permission denied" (= "Keine Berechtigung"), mas simplesmente não entendi. Por exemplo, executar um dos scripts de pós-instalação que não podem ser executados manualmente fornece "permissão negada"

$ sudo /var/lib/dpkg/info/ca-certificates-java.postinst --configure  
 sudo: unable to execute /var/lib/dpkg/info/ca-certificates-java.postinst: Keine Berechtigung  

mas não vejo por que, as permissões parecem corretas para mim:

$ ls -l /var/lib/dpkg/info/ca-certificates-java.postinst  
-rwxr-xr-x 1 root root 1759 2014-03-05 17:07 /var/lib/dpkg/info/ca-certificates-java.postinst  

Alguém pode me dar uma dica do que devo fazer para me livrar desses erros e recuperar meu sistema de trabalho?

    
por twiga 04.04.2014 / 04:51

2 respostas

0

Posso aconselhar sobre alguma depuração.

Todos os scripts postinst são scripts de shell , para que você possa analisá-los com um editor de texto e descobrir o que eles fazem.

Por exemplo, less /var/lib/dpkg/info/install-info.postinst mostra que o script está executando o comando update-info-dir , que examinará /usr/share/info/ . Verifique suas permissões de arquivo lá.

/var/lib/dpkg/info/ca-certificates-java.postinst , por sua vez, está tentando atualizar o keystore java localizado em /etc/ssl/certs/java/cacerts . Por favor, teste se você pode listar os certificados no keystore executando

keytool -list -v -keystore /etc/ssl/certs/java/cacerts

A senha padrão é 'mudar'.

    
por Eero Aaltonen 04.04.2014 / 09:38
0

Obrigado pelas sugestões.

Ao examinar os scripts que estavam retornando o erro "permissão negada", descobri que todos eles tinham bash shebang.

E voilà: por algum motivo estranho, /bin/bash não tinha permissões de execução definidas. Após um sudo chmod 755 /bin/bash todos os scripts foram executados e tudo funcionou novamente.

    
por twiga 06.04.2014 / 01:26