apt-get intenta acceder a ~/.config/git/

apt-get intenta acceder a ~/.config/git/

Al instalar nuevos paquetes con el administrador de paquetes, aparece el error de permisos que se muestra a continuación. Esto sucede porque /homeestá montado desde otro servidor; sin embargo, ¿por qué apt-get intenta acceder ~/.config/giten primer lugar?

(base) blk6@gho:~/$ sudo apt-get install libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  libssl-doc
The following NEW packages will be installed:
  libssl-dev
0 upgraded, 1 newly installed, 0 to remove and 57 not upgraded.
Need to get 1,566 kB of archives.
After this operation, 7,846 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.5 [1,566 kB]
Fetched 1,566 kB in 3s (507 kB/s)       
warning: unable to access '/home/Users/blk6/.config/git/attributes': Permission denied
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied
Selecting previously unselected package libssl-dev:amd64.
(Reading database ... 219434 files and directories currently installed.)
Preparing to unpack .../libssl-dev_1.1.1-1ubuntu2.1~18.04.5_amd64.deb ...
Unpacking libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
Setting up libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.5) ...
warning: unable to access '/home/Users/blk6/.config/git/ignore': Permission denied

Respuesta1

No tengo idea de por qué su administrador de paquetes intentaría invocar a git, pero puede intentar usar elstraceutilidad para descubrir qué está pasando. Strace rastrea las llamadas al sistema, incluidos los intentos de abrir archivos o ejecutar programas.

Para investigar su problema específico, intentaría averiguar qué comandos ejecuta ( -e execve) apt-gety sus procesos secundarios bifurcados ( -f):

sudo strace -f -e execve apt-get install ...

Si elimina la -e execveopción, no se aplicará ningún filtro, lo que dará como resultado una salida larga. Para hacer que strace escriba su salida en un archivo, puede usar la -o file.txtopción antes del comando (p. ej strace -f -o file.txt apt install ....).

También puede utilizarlo -e execve -e filepara rastrear tanto las ejecuciones de comandos como los intentos de abrir o leer archivos. Luego busque la invocación del comando git y busque las líneas encima de esta invocación. Quizás eso revele el nombre del script desde el cual se invocó el comando.

Si eso aún no es suficiente, podría considerar escanear la configuración de apt en /etc/apt/. Quizás lo hayas configurado para invocar algún gancho. Ejemplo para buscar invocaciones de git:

grep -nre git /etc/apt

La salida estará vacía si no hay coincidencias y, en caso contrario, mostrará el archivo, el número de línea y el contenido de la línea.

información relacionada